Simple test to see if year is a leap year

  • Context: High School 
  • Thread starter Thread starter moonman239
  • Start date Start date
  • Tags Tags
    Test Year
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
9 replies · 3K views
moonman239
Messages
276
Reaction score
0
I just stumbled across this on my own. I find that all leap years in the current calendar are multiples of 16. Therefore, to see if a year is a leap year, one need only to divide the year by 16 and see if there is a remainder. If so, the year is not a leap year. If not, the year is a leap year. Note that this only works for dates in the Gregorian calendar, which was created in 1582 AD but was not universally adopted for a few years. So you'll need to know when the country of interest adopted the Gregorian calendar.
 
Mathematics news on Phys.org
I don't think this is correct. Any year divisible by 4 is a leap year unless it is divisible by 100. For example 2004 and 2008 were leap years and neither one is divisible by 16.
 
I don't follow your logic. 2012 is a leap year. I get 125.75 when I divide 2012 by 16.
 
Iirc a year is leap if it is divisible by four, unless it ends in two zeros then it must be divisible by sixteen.
 
phyzguy said:
Any year divisible by 4 is a leap year unless it is divisible by 100.
Almost. Years that are divisible by 400 are also leap years. One way to write this:
[tex](N = 0\mod 4) \wedge ((N \ne 0 \mod 100) \vee (N = 0 \mod 400))[/tex]

The test for whether a year is a leap year can be written in a number of ways, but it will always involve three modulus calculations. For example, this also works:
[tex](N = 0\mod 16) \vee ((N = 0 \mod 4) \wedge (N \ne 0 \mod 25))[/tex]
 
I thought this pseudocode from wikipedia was useful.

if year modulo 400 is 0 then
is_leap_year
else if year modulo 100 is 0 then
not_leap_year
else if year modulo 4 is 0 then
is_leap_year
else
not_leap_year

It helps to see how 2000 was a leap year but 1900 was not.
 
Ynaught? said:
I don't follow your logic. 2012 is a leap year. I get 125.75 when I divide 2012 by 16.

Got it. But the remainder is 3/4.

Updated: If there is a remainder, and its denominator is 4, then the year is a leap year.
 
moonman239 said:
Got it. But the remainder is 3/4.

Updated: If there is a remainder, and its denominator is 4, then the year is a leap year.
No! That would make 1900 a leap year, which it wasn't. It's a three-way test. See posts #5 and 6.
 
An interesting consequence of the leap year rules is that the 13th of the month falls on a Friday more often than 1/7.
 
Ynaught? said:
I get 125.75 when I divide 2012 by 16.

moonman239 said:
Got it. But the remainder is 3/4.

I thought the remainder upon dividing 2012 by 16 is 12, not 3/4. :confused: