NAME
DateTime::Calendar::Pataphysical - Dates in the pataphysical calendar
SYNOPSIS
use DateTime::Calendar::Pataphysical;
$dt = DateTime::Calendar::Pataphysical->new( year => 1752,
month => 10,
day => 4 );
DESCRIPTION
DateTime::Calendar::Pataphysical is the implementation of the pataphysical calendar. Each year in this calendar contains 13 months of 29 days. This regularity makes this a convenient alternative for the irregular Gregorian calendar.
This module is designed to be easy to use in combination with DateTime. Most of its methods correspond to a DateTime method of the same name.
METHODS
new( ... )
This class method accepts parameters for each date and time component: "year", "month", "day". Additionally, it accepts a "language" parameter.
from_epoch( epoch => $epoch, ... )
This class method can be used to construct a new object from an epoch time instead of components. Just as with the
new()
method, it accepts a "language" parameter.now( ... )
This class method is equivalent to calling
from_epoch()
with the value returned from Perl'stime()
function.from_object( object => $object, ... )
This class method can be used to construct a new object from any object that implements the
utc_rd_values()
method. AllDateTime::Calendar
modules must implement this method in order to provide cross-calendar compatibility. This method accepts a "language" parameter.The time part of $object is ignored.
last_day_of_month( ... )
This constructor takes the same arguments as can be given to the
now()
method, except for "day". Additionally, both "year" and "month" are required.clone
This object method returns a replica of the given object.
year
Returns the year.
month
Returns the month of the year, from 1..13.
month_name
Returns the name of the current month.
day_of_month, day, mday
Returns the day of the month, from 1..29.
day_of_week, wday, dow
Returns the day of the week as a number, from 1..7, with 1 being Sunday and 7 being Saturday.
day_name
Returns the name of the current day of the week.
day_of_year, doy
Returns the day of the year.
ymd( $optional_separator ), date
mdy( $optional_separator )
dmy( $optional_separator )
Each method returns the year, month, and day, in the order indicated by the method name. Years are zero-padded to four digits. Months and days are 0-padded to two digits.
By default, the values are separated by a dash (-), but this can be overridden by passing a value to the method.
datetime
Equivalent to
$dt->ymd('-') . 'EP'
is_leap_year
This method returns a true or false indicating whether or not the datetime object is in a leap year.
week
($week_year, $week_number) = $dt->week
Returns information about the calendar week which contains this datetime object. The values returned by this method are also available separately through the week_year and week_number methods.
week_year
Returns the year of the week. In the pataphysical calendar, this is equal to the year of the date, as all weeks fall in one year only.
week_number
Returns the week of the year, from 1..53.
The 29th of each month falls outside of any week; week_number returns undef for these dates.
utc_rd_values
Returns the current UTC Rata Die days and seconds as a two element list. This exists primarily to allow other calendar modules to create objects based on the values provided by this object.
utc_rd_as_seconds
Returns the current UTC Rata Die days and seconds purely as seconds. This is useful when you need a single number to represent a date.
strftime( $format, ... )
This method implements functionality similar to the
strftime()
method in C. However, if given multiple format strings, then it will return multiple elements, one for each format string.See DateTime for a list of all possible format specifiers. This module implements all specifiers related to dates. There is one additional specifier:
%*
represents the feast of that date.feast
Returns the feast or vacuation of the given date.
is_imaginary
Returns true or false indicating whether the datetime object represents an imaginary date.
set( .. )
This method can be used to change the local components of a date time, or its language. This method accepts any parameter allowed by the
new()
method.truncate( to => ... )
This method allows you to reset some of the local time components in the object to their "zero" values. The "to" parameter is used to specify which values to truncate, and it may be one of "year", "month", or "day".
add_duration( $duration_object )
This method adds a
DateTime::Duration
to the current datetime. See the DateTime::Duration docs for more detais.add( DateTime::Duration->new parameters )
This method is syntactic sugar around the
add_duration()
method. It simply creates a newDateTime::Duration
object using the parameters given, and then calls theadd_duration()
method.subtract_duration( $duration_object )
When given a
DateTime::Duration
object, this method simply callsinvert()
on that object and passes that new duration to theadd_duration
method.subtract( DateTime::Duration->new parameters )
Like
add()
, this is syntactic sugar for thesubtract_duration()
method.subtract_datetime( $datetime )
This method returns a new
DateTime::Duration
object representing the difference between the two dates.compare
$cmp = DateTime->compare($dt1, $dt2); @dates = sort { DateTime->compare($a, $b) } @dates;
Compare two DateTime objects. The semantics are compatible with Perl's
sort()
function; it returns -1 if $a < $b, 0 if $a == $b, 1 if $a > $b.Of course, since DateTime objects overload comparison operators, you can just do this anyway:
@dates = sort @dates;
BUGS
Adding a week to a date is exactly equivalent to adding seven days in this module because of the way DateTime::Duration is implemented. The Hunyadis are not taken into account.
from_epoch() and now() probably only work on Unix.
SUPPORT
Support for this module is provided via the datetime@perl.org email list. See http://lists.perl.org/ for more details.
AUTHOR
Eugene van der Pijll <pijll@gmx.net>
COPYRIGHT
Copyright (c) 2003 Eugene van der Pijll. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
SEE ALSO
datetime@perl.org mailing list