Hi,
The algorithm below is not accurate - you must find the Julian day for each
date and then subtract the 2 dates.
Cheers,
Rui Fernandes
----- Original Message -----
From: "Dr.Ruud" <[EMAIL PROTECTED]>
To: <datetime@perl.org>
Sent: Tuesday, May 30, 2006 4:18 PM
Subject: Re: Time Difference
"Charitha Dias" schreef:
The format of date and time is something like YYYYMMDDhhmmssmm (for
example 2001030400060400). Actually I need to get time difference.
For example I want to get difference between 2001030400053200 and
2001030400060400.
What precision do you need?
#!/usr/bin/perl
# delta-time guesser
use strict ;
use warnings ;
sub delta_time
{
my $t ;
my $RE =
qr/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(?:(\d{2}))?/ ;
# ccyy mm dd HH MM SS CC
sub calc { ( ( ( ( ( $1*365.25 + $2*365.25/12 + $3
) * 24 + $4
) * 60 + $5
) * 60 + $6
) + ($7 or 0)/100
)
}
$_[0] =~ $RE and $t -= calc() and
$_[1] =~ $RE and $t += calc() and return $t ;
return
}
if ( my $t = delta_time '2001030400053240',
'20010304000604' ) {
printf "%.2f seconds\n", $t ;
} else {
print "ERROR\n" ;
}
--
Affijn, Ruud
"Gewoon is een tijger."