Days

I want to make a program to count a total days, examples i saved 01-31-98 (mm/dd/yy) then if today is 01-01-99 (mm/dd/yy) the program count a total days from 01-31-98. so the output from the program will be 1 days.
others examples, i save 02-01-99 then i input 03-01-99 then the outpun must be 28 days.. the output must be in days!!
Thanks
LVL 1
ichenAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
flivaudaConnect With a Mentor Commented:
#!/usr/local/bin/perl

$days = &days_since_1990(1998, 3, 1) -  &days_since_1990(1998, 2, 1);
print "Days: $days\n";


sub leap_year
{
        local($year); $year = shift;
        local($x);
        $x = ((($year % 4 == 0) && ($year % 100 != 0)) || ($year % 400 ==0));
        return $x;
}

sub days_in_year
{
        local($year); $year = shift;
        return (&leap_year($year) ? 366 : 365);
}

sub days_in_month
{
        local($year); $year = shift;
        local($month); $month = shift;
        @days_per_month = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

        if (($month<1) || ($month>12))
        {

                $days=0;
        }
        else
        {
                $days = $days_per_month[$month - 1];
                if (&leap_year($year) && ($month == 2))
                {
                        $days++;
                }
        }
        return $days;
}

sub day_of_year
{
        $year = shift;
        $month = shift;
        $day = shift;
        local($x);
        local($day_count);

        $day_count=0;
        for ($x=1;$x<$month;$x++)
        {
                $day_count += &days_in_month($year, $x);
        }
        return ($day_count + $day);
}

sub days_since_1990
{
        local($year); $year = shift;
        local($month); $month = shift;
        local($day); $day = shift;
        local($x);
        local($day_count);

        $day_count=0;

        if ($year<1990)
        {
                return 0;
        }

        for ($x=1990;$x<$year;$x++)
        {
                $day_count += &days_in_year($x);
        }
        $day_count += &day_of_year($year, $month, $day) - 1;

        return $day_count;
}


0
 
ozoCommented:
sub days_since_1990 { use Time::Local; (timegm(0,0,0,$_[2],$_[1]-1,$_[0]-1900)-timegm(0,0,0,1,1-1,1990-1900)) / (60*60*24) }
0
 
flivaudaCommented:
I just ported over my old C code, your is a little shorter =)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.