[REVIEWED 3-5-1][PATCH] Fix leap year calculation

Lionel Elie Mamane lionel at mamane.lu
Wed Feb 29 09:07:39 PST 2012


On Wed, Feb 29, 2012 at 03:38:30PM +0100, Kevin André wrote:
> On Wed, Feb 29, 2012 at 14:56, Lionel Elie Mamane <lionel at mamane.lu> wrote:
>> On Tue, Feb 28, 2012 at 10:10:10PM -0500, Kohei Yoshida wrote:

>>>      return ((nYear % 4) == 0)
>>> -        && !(((nYear % 100) == 0) || ((nYear % 400) == 0));
>>> +        && (((nYear % 100) != 0) || ((nYear % 400) == 0));

> Why still that many parentheses? Couldn't it be simply:

> return (nYear % 400) == 0 || ((nYear % 4) == 0 && (nYear % 100) != 0);

Even stronger, given the precedence of the operators in play, it could
be:

 return nYear % 400 == 0 || nYear % 4 == 0 && nYear % 100 != 0;

But that may be less readable... These parentheses are a trade-off
between conciseness and readability, i.e. of style.

-- 
Lionel


More information about the LibreOffice mailing list