Date-EzDate
view release on metacpan or search on metacpan
$name = 'June 30, 2002 12:05:07 Pm';
$date = Date::EzDate->new($name);
$date->{'%h'} = 'JANUARY'; # %h'} = 'monthshort';
$date->{'%d'} = 31; # %d'} = 'dayofmonth';
$date->{'%b'} = '01'; # %b'} = 'ampmhournozero';
$date->{'%p'} = 'AM'; # %p'} = 'ampmlc';
check_all($date, $name);
$name = 'August 1, 2002 11:05:07 Am';
$date = Date::EzDate->new($name);
$date->{'%B'} = '01'; # hournozero
$date->{'%e'} = '01'; # monthnumbase1nozero
$date->{'%f'} = '031'; # dayofmonthnozero
check_all($date, $name);
$name = 'January 01, 2002 1:05:07 am';
$date = Date::EzDate->new($name);
$date->{'%j'} = '031'; # yeardaybase1
check_all($date, $name);
$name = 'July 31, 2012 10:05:07 am';
$date = Date::EzDate->new($name);
$date->{'%y'} = '2002'; # %y'} = 'yeartwodigits';
$date->{'%m'} = '01'; # monthnumbase1
$date->{'%k'} = '01'; # ampmhour
$date->{'%w'} = '04'; # weekdaynum
check_all($date, $name);
$name = 'January 30, 2002 1:05:07 am';
$date = Date::EzDate->new($name);
$date->{'%a'} = 'THURSDAY'; # weekdayshort
check_all($date, $name);
$name = 'January 30, 2002 1:05:07 am';
$date = Date::EzDate->new($name);
$date->{'%A'} = 'THUR'; # weekdaylong
check_all($date, $name);
# removing this test: it assumes a particular
# epoch second which may not be valid on the
# specific system on which these tests are run.
#
# January 31, 2002 1:05:07 am Thu
#$date = Date::EzDate->new('July 31, 2012 10:05:07 am');
#$date->{'%s'} = 1012457107; # epochsec
#check_all($date);
};
#
# set properties
#------------------------------------------------------
#------------------------------------------------------
# check epoch days around the epoch
#
do {
my (@timevalues);
my $name = 'check epoch days around the epoch';
my $iterations = 10;
# check if this system can handle negative epoch values
@timevalues = localtime(-1);
# skip block:
SKIP: {
# skip section
if (! @timevalues) {
skip 'this system cannot handle dates before the epoch', $iterations;
}
# variables
my ($date, $control, @timevalues);
# get date object and control day
$date = Date::EzDate->new('Jan 4, 1970 5pm');
$control = $date->{'epoch day'};
foreach my $i (0..$iterations) {
err_comp(
$date->{'epoch day'},
$control,
"$name: iteration $i",
);
$control--;
$date->{'epoch day'}--;
}
}
ok(1, "$name: end");
};
#
# check epoch days around the epoch
#------------------------------------------------------
#------------------------------------------------------------------------------
# check for daylight savings time issue
#
do {
my ($date);
my $name = 'daylight savings time';
$date = Date::EzDate->new('Jan 1, 2005 3pm');
err_comp ($date->{'miltime'}, '1500', "$name: initial");
$date->{'epoch day'} += 180;
err_comp ($date->{'miltime'}, '1500', "$name: epoch day (1)");
$date->{'epoch day'} += 180;
err_comp ($date->{'miltime'}, '1500', "$name: epoch day (2)");
ok(1, "$name: end");
};
#
# check for daylight savings time issue
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# revised monthnum algorithm
#
do {
my ($date);
my $name = 'revised monthnum algorithm';
$date = Date::EzDate->new('Dec 1, 2004 12:54:15');
err_comp
$date->{'{month short} {day of month}, {year} {clock time}'},
'Dec 01, 2004 12:54 pm',
"$name: (1)";
$date->{'monthnum'}++;
err_comp
$date->{'{month short} {day of month}, {year} {clock time}'},
( run in 1.708 second using v1.01-cache-2.11-cpan-71847e10f99 )