Viewing file: clocks.pl (1.02 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/bin/perl use strict; use warnings;
use Time::Moment; use DateTime::TimeZone;
my @zones = qw( Africa/Cairo America/Chicago America/Los_Angeles America/New_York Asia/Dubai Asia/Hong_Kong Asia/Kathmandu Asia/Tokyo Australia/Sydney Europe/Brussels Europe/London Europe/Moscow Europe/Paris Europe/Stockholm Pacific/Apia );
my $now = Time::Moment->now; my @clocks; foreach my $name (@zones) { my $zone = DateTime::TimeZone->new(name => $name); my $offset = $zone->offset_for_datetime($now) / 60; my $time = $now->with_offset_same_instant($offset); $name =~ s![^/]+/!!; $name =~ s!_!\x20!g; push @clocks, [$name, $time]; }
@clocks = sort { $a->[1]->offset <=> $b->[1]->offset or $a->[0] cmp $b->[0] } @clocks;
for my $clock (@clocks) { my ($name, $time) = @$clock; my $delta = $time->offset - $now->offset; printf "%-12s %-16s (%+.2d:%.2d)\n", $name, $time->strftime("%a %H:%M %:z"), $delta / 60, abs($delta) % 60; }
|