use warnings; use strict; use Tk; use DateTime; use Time::HiRes qw(time); my $time; # Specify the day you're counting down to here my $then = DateTime->new(year => 2003, month => 12, day => 30, hour => 17, minute => 30, second => 0, time_zone => 'local'); my $mw = MainWindow->new; $mw->Label(-textvariable => \$time, -font => "{arial} 12 bold")->pack; $mw->repeat(4, \&update); update(); $mw->overrideredirect(1); $mw->geometry("+0+0"); MainLoop; sub update { my $now = DateTime->from_epoch(epoch => time, time_zone => 'local'); my $dur = ($then - $now); $time = $dur->days . " days "; $time .= $dur->hours . ":"; $time .= sprintf("%.2d", $dur->minutes) . ":"; $time .= sprintf("%.2d", $dur->seconds) . ":"; $time .= sprintf("%.3d", int($dur->nanoseconds / 1000000)); }