fix sh/time undefined $last[0] error
[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 #
8 #
9
10 my ($self, $line) = @_;
11 my @list = split /\s+/, $line;
12
13 push @list, $self->call unless @list;
14
15 my $l;
16 my @out;
17 my $t = $main::systime;
18 if ($list[0] =~ /^\d+$/) {
19         $t = shift @list;
20 }
21
22 push @out, $self->msg("time1", cldate($t, 1), ztime($t, 1), ztime($t));
23
24 if (@list) {
25         foreach $l (@list) {
26                 # prefixes --->
27                 my @ans = Prefix::extract($l);
28                 next if !@ans;
29                 my $pre = shift @ans;
30                 my $a;
31                 foreach $a (@ans) {
32                         my $s = sprintf "%-9s %-20s", $pre, $a->name();
33
34                         # UTC offset is in hours.minutes (too late to change it now) AND
35             # the wrong way round!
36                         my $off = $a->utcoff();
37                         my $frac = $off - int $off;
38                         $off = (int $off) + (($frac*100)/60);
39                         my ($sec,$min,$hour) = gmtime($t - 3600*$off);
40                         my $buf = sprintf "%02d%02d", $hour, $min;
41                         push @out, $self->msg("time2", $s, $buf, sprintf("%+.1f", -$off));
42                 }
43         }
44
45
46 return (1, @out);