6593ee3d1c147cdb9930dd4ce2ce0e2236c323cc
[spider.git] / cmd / show / time.pl
1 #!/usr/bin/perl
2 #
3 # show local times for each callsign or prefix entered
4 #
5 # Copyright (c) 1999 Dirk Koopman G1TLH
6 #
7 # $Id$
8 #
9
10 my ($self, $line) = @_;
11 my @list = split /\s+/, $line;
12
13 my $l;
14 my @out;
15 my $t = $main::systime;
16 if ($list[0] =~ /^\d+$/) {
17         $t = shift @list;
18 }
19
20 push @out, $self->msg("time1", cldate($t, 1), ztime($t, 1), ztime($t));
21
22 if (@list) {
23         foreach $l (@list) {
24                 # prefixes --->
25                 my @ans = Prefix::extract($l);
26                 next if !@ans;
27                 my $pre = shift @ans;
28                 my $a;
29                 foreach $a (@ans) {
30                         my $s = sprintf "%-9s %-20s", $pre, $a->name();
31
32                         # UTC offset is in hours.minutes (too late to change it now) AND
33             # the wrong way round!
34                         my $off = $a->utcoff();
35                         my $frac = $off - int $off;
36                         $off = (int $off) + (($frac*100)/60);
37                         my ($sec,$min,$hour) = gmtime($t - 3600*$off);
38                         my $buf = sprintf "%02d%02d", $hour, $min;
39                         push @out, $self->msg("time2", $s, $buf, sprintf("%+.1f", -$off));
40                 }
41         }
42
43
44 return (1, @out);