|
|
|
|
|
by hairtuq
508 days ago
|
|
The article leaves out optimizing is_leap_year. Here is an interesting version that is correct (in the Proleptic Gregorian calendar) for 0 <= year <= 102499 and takes only 3 instructions: ((year * 1073750999) & 3221352463) <= 126976
How this works is surprisingly complex, I am thinking of writing a whole blog post about it... |
|
Historical minor quibble - formula correct for 1582 <= year <= 102499 (well, it's actually correct down to 1201, but the gregorian calendar didn't start until oct 1582... and then you get into the quagmire about when each country adopted the gregorian calendar, if they ever did)