use POSIX qw/difftime mktime/; my $now = time(); my @then = ($ARGV[0] =~ /^(\d{4})(\d{2})(\d{2})/); my $then = mktime(0,0,0,$then[2],$then[1]-1,$then[0]-1900); my $diff = difftime($now,$then); printf("%d days", int($diff/86400) ); printf(", %d hours", int( $diff%86400)/3600 ); printf(", %d minutes ", int( ($diff%86400)%3600 )/60 ); printf(", %d seconds \n", ( ($diff%86400)%3600 )%60 );