1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Simple test to see if year is a leap year

  1. Jun 26, 2012 #1
    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.
     
  2. jcsd
  3. Jun 26, 2012 #2

    phyzguy

    User Avatar
    Science Advisor

    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.
     
  4. Jun 26, 2012 #3
    I don't follow your logic. 2012 is a leap year. I get 125.75 when I divide 2012 by 16.
     
  5. Jun 26, 2012 #4
    Iirc a year is leap if it is divisible by four, unless it ends in two zeros then it must be divisible by sixteen.
     
  6. Jun 26, 2012 #5

    D H

    User Avatar
    Staff Emeritus
    Science Advisor

    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]
     
  7. Jun 26, 2012 #6
    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.
     
  8. Jun 26, 2012 #7
    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.
     
  9. Jun 26, 2012 #8

    D H

    User Avatar
    Staff Emeritus
    Science Advisor

    No! That would make 1900 a leap year, which it wasn't. It's a three-way test. See posts #5 and 6.
     
  10. Jun 27, 2012 #9

    haruspex

    User Avatar
    Science Advisor
    Homework Helper
    Gold Member
    2016 Award

    An interesting consequence of the leap year rules is that the 13th of the month falls on a Friday more often than 1/7.
     
  11. Jun 27, 2012 #10

    eumyang

    User Avatar
    Homework Helper

    I thought the remainder upon dividing 2012 by 16 is 12, not 3/4. :confused:
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: Simple test to see if year is a leap year
Loading...