1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
|
#!perl -w
BEGIN { eval { require bytes; }; }
use strict;
no strict "vars";
use Date::Pcalc::Object qw(:all);
# ======================================================================
# $date = Date::Pcalc->time2date([TIME]);
# $time = $date->date2time();
# ======================================================================
# $date = Date::Pcalc->gmtime([TIME]);
# $date = Date::Pcalc->localtime([TIME]);
# $time = $date->mktime();
# ======================================================================
# Unix epoch is Thu 1-Jan-1970 00:00:00 (GMT)
# Classic MacOS epoch is Fri 1-Jan-1904 00:00:00 (local time)
#
# Unix time overflow is Tue 19-Jan-2038 03:14:07 (time=0x7FFFFFFF)
# MacOS time overflow is Mon 6-Feb-2040 06:28:15 (time=0xFFFFFFFF)
if ($^O eq 'MacOS')
{
$max_time = 0xFFFFFFFF;
$epoch_vec = [1904,1,1,0,0,0];
$epoch_str = 'Friday, January 1st 1904 00:00:00';
$max_vec = [2040,2,6,6,28,15];
$max_str = 'Monday, February 6th 2040 06:28:15';
$match_vec = [1935,6,10,15,42,30];
$match_str = 'Monday, June 10th 1935 15:42:30';
}
else
{
$max_time = 0x7FFFFFFF;
$epoch_vec = [1970,1,1,0,0,0];
$epoch_str = 'Thursday, January 1st 1970 00:00:00';
$max_vec = [2038,1,19,3,14,7];
$max_str = 'Tuesday, January 19th 2038 03:14:07';
$match_vec = [2001,6,10,15,42,30];
$match_str = 'Sunday, June 10th 2001 15:42:30';
}
print "1..18\n";
$n = 1;
$date = Date::Pcalc->time2date(0);
if ($date eq $epoch_vec)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
$date->date_format(3);
if ("$date" eq $epoch_str)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->date2time() == 0)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
$date->time2date($max_time);
if ($date eq $max_vec)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ("$date" eq $max_str)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->date2time() == $max_time)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
$time = 992187750;
$date->time2date($time);
if ($date eq $match_vec)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ("$date" eq $match_str)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->date2time() == $time)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $date->gmtime(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date gt $match_vec)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $date->time2date(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date gt $match_vec)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $date->localtime(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date->is_valid())
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($date gt $match_vec)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
eval { $time = $date->mktime(); };
unless ($@)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
if ($time > 992187750)
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
__END__
|