1998-09-18 05:28:26

by Helge Hafting

[permalink] [raw]
Subject: Re: Non-urgent issue with fs/isofs/util.c

In <[email protected]>, on 09/18/98
at 03:14 PM, Ian McKellar <[email protected]> said:


>Hi,

>The iso_date function in fs/isofs/util.c doesn't correctly handle leap
>years.

>Well, it doesn't handle the year 2100 - which according to the code is a
>leap year, but according to the commonly accepted rules is not.

>I don't think we need to be to concerned right now, but changing:
> if (((year+2) % 4) == 0 && month > 2)
>to:
> if (((year+2) % 4) == 0 && month > 2 && year != 130) should
>fix it.
The equivalent code
if (!((year+2) & 3) && month > 2 && year != 130) is probably
faster. The somewhat expensive mod operator is
replaced by a bitwise "and", that is faster on most platforms.

Helge Hafting
--
-----------------------------------------------------------
[email protected]
-----------------------------------------------------------