#!/usr/bin/perl -w
#
# $Revision: 1.3 $ $Date: 2012-07-26 17:11:49-04 $
# $Source: /home/vogelke/bin/RCS/timediff,v $
# $Host: sys7.com $
# $UUID: cb9afc99-33ea-350d-a9ae-3a6d70c6a0c2 $
#
#<timediff: show difference between two times.
# Print difference in total seconds, then days:hrs:mins:secs
#
# usage: timediff "time-1" "time-2"
# example: 
#     timediff 13:00:08 13:40:41
#     2433 0:0:40:33

use Date::Parse;
use strict;

my ($s1, $s2, $t1, $t2, $delta);
$s1 = shift || die "no times provided\n";
$s2 = shift || die "need two times to compare\n";
$t1 = str2time($s1) || die "$s1: cannot parse\n";
$t2 = str2time($s2) || die "$s2: cannot parse\n";

use integer;
$delta = $t2 - $t1;
$delta = -$delta if $delta < 0;

my ($day, $hr, $min, $sec) = (0, 0, 0, $delta);
my ($dlen, $hlen, $mlen) = (86400, 3600, 60);

if ($sec > $dlen) { $day = $sec / $dlen; $sec -= $day * $dlen; }
if ($sec > $hlen) { $hr = $sec / $hlen ; $sec -= $hr  * $hlen; }
if ($sec > $mlen) { $min = $sec / $mlen; $sec -= $min * $mlen; }

print "$delta $day:$hr:$min:$sec\n";
exit(0);
