The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl -w

BEGIN { eval { require bytes; }; }
use strict;
no strict "vars";

use Date::Pcalc qw( Delta_DHMS Add_Delta_DHMS );

# ======================================================================
#   ($days,$hh,$mm,$ss) = Delta_DHMS
#   (
#       $year1,$month1,$day1,$hh1,$mm1,$ss1,
#       $year2,$month2,$day2,$hh2,$mm2,$ss2
#   );
# ======================================================================

# ======================================================================
#   ($year,$month,$day,$hh,$mm,$ss) = Add_Delta_DHMS
#   (
#       $year,$month,$day,$hh,$mm,$ss,
#       $days_offset,$hh_offset,$mm_offset,$ss_offset
#   );
# ======================================================================

print "1..16\n";

$n = 1;
($dd,$h,$m,$s) = Delta_DHMS(1996,5,23,23,58,2,1996,5,25,0,1,1);
if (($dd == 1) && ($h == 0) && ($m == 2) && ($s == 59))
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
($dd,$h,$m,$s) = Delta_DHMS(1996,5,25,0,1,1,1996,5,23,23,58,2);
if (($dd == -1) && ($h == 0) && ($m == -2) && ($s == -59))
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
($yy,$mm,$dd,$h,$m,$s) = Add_Delta_DHMS(1996,5,23,23,58,2,1,0,2,59);
if (($yy == 1996) && ($mm == 5) && ($dd == 25) && ($h == 0) && ($m == 1) && ($s == 1))
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
($yy,$mm,$dd,$h,$m,$s) = Add_Delta_DHMS(1996,5,25,0,1,1,-1,0,-2,-59);
if (($yy == 1996) && ($mm == 5) && ($dd == 23) && ($h == 23) && ($m == 58) && ($s == 2))
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
($dd,$h,$m,$s) = Delta_DHMS(1996,5,25,18,12,8,1996,6,15,14,12,8);
if (($dd == 20) && ($h == 20) && ($m == 0) && ($s == 0))
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
($dd,$h,$m,$s) = Delta_DHMS(1996,6,15,14,12,8,1996,5,25,18,12,8);
if (($dd == -20) && ($h == -20) && ($m == 0) && ($s == 0))
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
($yy,$mm,$dd,$h,$m,$s) = Add_Delta_DHMS(1996,5,25,18,12,8,0,500,0,0);
if (($yy == 1996) && ($mm == 6) && ($dd == 15) && ($h == 14) && ($m == 12) && ($s == 8))
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
($yy,$mm,$dd,$h,$m,$s) = Add_Delta_DHMS(1996,6,15,14,12,8,0,-500,0,0);
if (($yy == 1996) && ($mm == 5) && ($dd == 25) && ($h == 18) && ($m == 12) && ($s == 8))
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
($dd,$h,$m,$s) = Delta_DHMS(1996,5,25,18,12,8,1996,6,6,7,58,31);
if (($dd == 11) && ($h == 13) && ($m == 46) && ($s == 23))
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
($dd,$h,$m,$s) = Delta_DHMS(1996,6,6,7,58,31,1996,5,25,18,12,8);
if (($dd == -11) && ($h == -13) && ($m == -46) && ($s == -23))
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
($yy,$mm,$dd,$h,$m,$s) = Add_Delta_DHMS(1996,5,25,18,12,8,0,0,0,999983);
if (($yy == 1996) && ($mm == 6) && ($dd == 6) && ($h == 7) && ($m == 58) && ($s == 31))
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
($yy,$mm,$dd,$h,$m,$s) = Add_Delta_DHMS(1996,6,6,7,58,31,0,0,0,-999983);
if (($yy == 1996) && ($mm == 5) && ($dd == 25) && ($h == 18) && ($m == 12) && ($s == 8))
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
($dd,$h,$m,$s) = Delta_DHMS(1964,1,3,11,0,0,1996,5,25,18,12,8);
if (($dd == 11831) && ($h == 7) && ($m == 12) && ($s == 8))
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
($dd,$h,$m,$s) = Delta_DHMS(1996,5,25,18,12,8,1964,1,3,11,0,0);
if (($dd == -11831) && ($h == -7) && ($m == -12) && ($s == -8))
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
($yy,$mm,$dd,$h,$m,$s) = Add_Delta_DHMS(1964,1,3,11,0,0,11831,7,12,8);
if (($yy == 1996) && ($mm == 5) && ($dd == 25) && ($h == 18) && ($m == 12) && ($s == 8))
{print "ok $n\n";} else {print "not ok $n\n";}
$n++;
($yy,$mm,$dd,$h,$m,$s) = Add_Delta_DHMS(1996,5,25,18,12,8,-11831,-7,-12,-8);
if (($yy == 1964) && ($mm == 1) && ($dd == 3) && ($h == 11) && ($m == 0) && ($s == 0))
{print "ok $n\n";} else {print "not ok $n\n";}

__END__