Leap years - one or two

Discussion in 'Programming' started by Jonathan_S, Feb 29, 2008.

  1. #1
    Hope someone can help me. User defines two dates(dd/mm/yy, then want to display 1) Difference in days between the two inputs in dd/mm/yy and 2) the difference in days between the dates. The problem is I always want to show the difference i dd/mm/yy no matter how long the period is but the maximun value I want to show for days is 1825 or 1826(which is five years depending on if it´s one or two leapyears in the given period). Please help. Give me some hlep how to do the second bit. How do I know to stop on 1826 or 1827.

    date('L', mktime(12, 0, 0, 1,1,'2008'));

    $startYear = substr($_POST['from_yr'], -2);
    $endYear = substr($_POST['to_yr'], -2);

    $leaps = 0;
    for($i=$startYear; $i<=$endYear; $i++) {
    if(date('L', mktime(12,0,0,1,1,$i))) $leaps++;
    }

    If i input 28 february 2008 - 28 february 2013 i get 5 years 0 monts and 0 days AND 1827 days and one leap years.
    If i input 3 march 2008 - 3 march 2013 i get 5 years 0 monts and 0 days AND 1826 days put only one leap year. <-- Here I only want it to get one leap year.

    Please help.

    Thank you!
     
    Jonathan_S, Feb 29, 2008 IP
  2. lephron

    lephron Active Member

    Messages:
    204
    Likes Received:
    2
    Best Answers:
    0
    Trophy Points:
    53
    #2
    In your leap year check you aren't checking what the input date is. If it is > 29 feb you want to start on the next year, not the current one
     
    lephron, Mar 2, 2008 IP