Why not adopt me?
NAME
Panda::Date::Int - Interval date object.
DESCRIPTION
Interval date is a period of time bound to particular point in time. Interval date consists of start date and end date.
CLASS METHODS
new($date | $epoch | \@ymdhms | \%ymdhms | $iso_fmt, $date | $epoch | \@ymdhms | \%ymdhms | $iso_fmt)
Creates interval object from 2 dates. Input data can be anything that date() constructor supports.
new($stringified | \@from_till)
Creates interval object from it's stringified form (->to_string) or array with from and till dates.
OBJECT METHODS
set($date | $epoch | \@ymdhms | \%ymdhms | $iso_fmt, $date | $epoch | \@ymdhms | \%ymdhms | $iso_fmt)
Set interval from data. This is much faster than creating new object.
set($stringified | \@from_till)
Set interval from stringified form or array with from and till dates.
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().
min(), mins, minute, minutes
Converts interval to accurate number of minutes between from() and till().
ihour(), ihours
Converts interval to accurate integer number of hours between from() and till().
hour(), hours
Converts interval to accurate number of hours between from() and till().
iday(), idays
Converts interval to accurate integer number of days between from() and till().
day(), days
Converts interval to accurate number of days between from() and till().
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()
"", to_string(), string(), as_string()
Returns string in "<LOWER DATE> ~ <UPPER DATE>" format, for example "2012-01-01 03:04:05 ~ 2013-02-03 05:06:14". If any of 'till' or 'from' dates have error, returns undef.
'+', add_new($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($reldate | $rel_string | $seconds | \@rel_array | \%rel_hash)
Same as add()
, but changes current object instead of creating new one.
'-', subtract_new($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($reldate | $rel_string | $seconds | \@rel_array | \%rel_hash)
Same as subtract_new()
, 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_new() - unary '-'
Swap from and till.
negative()
Same as negative_new()
, but changes current object instead of creating new one.
includes($date | $epoch | \@ymdhms | \%ymdhms | $iso_fmt)
Returns -1 if date presented by argument is greater than till()
date.
Returns 0 if date is between from()
and till()
dates.
Returns 1 otherwise.
OPERATOR OVERLOAD RULES
See screenshot http://crazypanda.ru/v/clip2net/p/F/0WuXfVRKMM.png
STORABLE SERIALIZATION
Storable serialization is fully supported. That means you're able to freeze Panda::Date::Int objects and thaw serialized data back without losing any information.
AUTHOR
Pronin Oleg <syber@cpan.org>, Crazy Panda, CP Decision LTD
LICENSE
You may distribute this code under the same terms as Perl itself.