Why not adopt me?
NAME
Panda::Date::Int - Interval date object.
DESCRIPTION
Interval date is a length of time bound to particular point in time. Interval date consists of start date and end date.
CLASS METHODS
new($date | $epoch | \@ymdhms | \%ymdhms | $sql_fmt, $date | $epoch | \@ymdhms | \%ymdhms | $sql_fmt)
Creates interval object from 2 dates. Input data can be anything that date() constructor supports.
OBJECT METHODS
set_from($date | $epoch | \@ymdhms | \%ymdhms | $sql_fmt, $date | $epoch | \@ymdhms | \%ymdhms | $sql_fmt)
Set interval from data. This is much faster than creating new object.
from([$from])
Lower date, Panda::Date.
till([$till])
Upper date, Panda::Date.
sec(), secs, second, seconds, duration
Converts interval to accurate number of seconds between from() and till().
imin(), imins, iminute, iminutes
Converts interval to accurate integer number of minutes between from() and till(). Equals int(sec/60).
min(), mins, minute, minutes
Converts interval to accurate number of minutes between from() and till(). Equals sec/60.
ihour(), ihours
Converts interval to accurate integer number of hours between from() and till(). Equals int(sec/3600).
hour(), hours
Converts interval to accurate number of hours between from() and till(). Equals sec/3600.
iday(), idays
Converts interval to accurate integer number of days between from() and till(). Not always equals int(sec/86400).
day(), days
Converts interval to accurate number of days between from() and till(). Not always equals sec/86400.
imonth(), imonths, imon, imons
Converts interval to accurate integer number of months between from() and till().
month(), months, mon, mons
Converts interval to accurate number of months between from() and till(). Fractional part are based on how many days left till last day of month.
iyear(), iyears
Converts interval to accurate integer number of years between from() and till().
year(), years
Converts interval to accurate number of years between from() and till().
relative ()
Returns Panda::Date::Rel that equals till() minus from(). Keep in mind that ->duration not always equal to ->relative->duration ! But from() + relative() always equals till()
'+', add($reldate | $rel_string | $seconds | \@rel_array | \%rel_hash)
Adds relative date to interval, i.e. adds reldate to it's lower and upper dates. Reldate can be Panda::Date::Rel object or any data valid for its constructor.
'+=', add_me($reldate | $rel_string | $seconds | \@rel_array | \%rel_hash)
Same as add(), but changes current object instead of creating new one.
'-', subtract($reldate | $rel_string | $seconds | \@rel_array | \%rel_hash)
Subtracts relative date from interval, i.e. subtracts reldate from its upper and lower dates. Reldate can be Panda::Date::Rel object or any data valid for its constructor.
'-=', subtract_me($reldate | $rel_string | $seconds | \@rel_array | \%rel_hash)
Same as subtract(), but changes current object instead of creating new one.
'<=>', compare($idate | [...])
Compares 2 interval dates and return -1, 0 or 1. It's based on duration(). Interval date can be number (duration), Panda::Date::Int object or arrayref with constructor data.
'eq', equals($idate | [...])
Compares 2 intervals and returns true or false. It's based on full equality (i.e. from1 eq from2 and till1 eq till2). Interval date can be Panda::Date::Int object or arrayref with constructor data.
'neg', negative() - unary '-'
Swap from and till.
negative_me()
Same as negative(), but changes current object instead of creating new one.
OPERATOR OVERLOAD RULES
See screenshot http://crazypanda.ru/v/clip2net/p/F/0WuXfVRKMM.png
AUTHOR
Pronin Oleg <syber@cpan.org>, Crazy Panda, CP Decision LTD
LICENSE
You may distribute this code under the same terms as Perl itself.