Re: BUG #11883: Year 1500 not treated as leap year when it was a leap year

Поиск
Список
Период
Сортировка
От Tomas Vondra
Тема Re: BUG #11883: Year 1500 not treated as leap year when it was a leap year
Дата
Msg-id 545A68B8.8000803@fuzzy.cz
обсуждение исходный текст
Ответ на Re: BUG #11883: Year 1500 not treated as leap year when it was a leap year  (Bruce Momjian <bruce@momjian.us>)
Список pgsql-bugs
On 5.11.2014 19:02, Bruce Momjian wrote:
> On Wed, Nov  5, 2014 at 05:56:07PM +0000, hunsakerbn@familysearch.org wrote:
>> The following bug has been logged on the website:
>>
>> Bug reference:      11883
>> Logged by:          Bruce Hunsaker
>> Email address:      hunsakerbn@familysearch.org
>> PostgreSQL version: 9.3.5
>> Operating system:   Linux
>> Description:
>>
>> Entering historical dates we found we could not enter a date of '1500-02-29'
>> Even though 1500 is documented to be a leap year. Tested with date and
>> timestamp column types.
>>
>> To reproduce:
>>  psql> create table date_test (mydate date);
>> CREATE TABLE
>> psql> insert into date_test values ('1500-02-29');
>> ERROR:  date/time field value out of range: "1500-02-29"
>> LINE 1: insert into date_test values ('1500-02-29');
>>
>> psql> insert into date_test values ('1500-02-28');
>> INSERT 0 1;
>>
>> So, Feb 29, is not allowed but Feb 28 is.
>
> Uh, what makes you think 1500 was a leap year?  This is the canonical
> way to calculate which years are leap years:
>
>     #define isleap(y) (((y) % 4) == 0 && (((y) % 100) != 0 || ((y) % 400) == 0))
>
> Because 1500 % 100 == 0, I think 1500 was not a leap year.

Well, the thing is this only works since 1582. Prior to that, only the
first condition was used.

Tomas

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Bruce Hunsaker
Дата:
Сообщение: Re: BUG #11883: Year 1500 not treated as leap year when it was a leap year
Следующее
От: Tom Lane
Дата:
Сообщение: Re: BUG #11883: Year 1500 not treated as leap year when it was a leap year