in reply to Re: Re: Re: Calculating between times
in thread Calculating between times

The thing is, I'm not testing the dates as they put them in. I have three pull down menus (day, month, year) where they select the according numbers. They have a 31 day limit and I don't do ANY checking on whether or not the month days actually exist.

Unless you know of a perl snippet that could test to be sure these dates are valid, I'm not sure what to do.

  • Comment on Re: Re: Re: Re: Calculating between times

Replies are listed 'Best First'.
Re: Re: Re: Re: Re: Calculating between times
by BUU (Prior) on Jan 09, 2004 at 07:55 UTC
    The thing is, I'm not testing the dates as they put them in. I have three pull down menus (day, month, year) where they select the according numbers. They have a 31 day limit and I don't do ANY checking on whether or not the month days actually exist. Unless you know of a perl snippet that could test to be sure these dates are valid, I'm not sure what to do.
    eval{ format($date); }; if ($@ =~ /range/) { print "Range error!"; }
Re: Re: Re: Re: Re: Calculating between times
by Skylark (Beadle) on Jan 09, 2004 at 14:42 UTC
    If you can afford using a module, I recommend Date::Calc. It has a check_date function that can check if any date is valid, and also a Days_in_Month function that returns the number of days in a given month.

    I also recommend Date::Calc for any date/time calculations. IMHO, date/time calculations is one of those things that has been done too many times, but is always a source of errors when you try to do it yourself... From converting seconds to hours, to adding days to a date while taking into account the leap year calculations and everything, this module can simplify error-prone date/time calculations greatly.

    (Geez, that sounds like a sales pitch... I'm serious about those types of calculations being error prone though. Just go through Date::Calc's POD, you'll see how many things the author took into account in the module)