Tidy up unused source
[bus.git] / origin-src / add-between-times.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#!/usr/bin/perl
 
use strict;
 
sub parse_time {
    my ($time) = @_;
 
    my ($hour, $minute);
 
    if ($time =~ /a\Z/) {
        $time =~ m/([0-9]+)([0-9][0-9])a/;
        ($hour, $minute) = ($1, $2);
    } elsif ($time =~ /p\Z/) {
        $time =~ m/([0-9]+)([0-9][0-9])p/;
        ($hour, $minute) = ($1, $2);
        if ($hour < 12) {
            $hour += 12;
        }
    } elsif ($time =~ /x\Z/) {
        $time =~ m/([0-9]+)([0-9][0-9])x/;
        ($hour, $minute) = ($1, $2);
        if ($hour == 12) {
            $hour += 12;
        } else {
            $hour += 24;
        }
    } elsif ($time =~ /^\ *-\Z/) {
        ($hour, $minute) = (0, 0);
        # no stop at this time
    } else {
        print "Should not happen! Time ('$time') misformed.\n";
        exit;
    }
 
    return ($hour, $minute);
}
 
my $num_intervals = $ARGV[0] or die "No num intervals given!";
my $interval = $ARGV[1] or die "No interval given!";
 
my @times;
 
$_ = <STDIN>;
print $_;
 
if ($_ !~ /^\#/) {
    my @timestrs;
    if ($_ =~ m/\[(.*)\]/) {
        my $inner = $1;
        @timestrs = split (/\,/, $inner);
 
    } else {
        @timestrs = split /\ /;
    }
 
    foreach (@timestrs) {
        my ($hour, $minute) = parse_time($_);
        push @times, [ $hour, $minute ];
    }
}
 
for (my $i=1; $i<($num_intervals+1); $i++) {
    my $first = 1;
    foreach (@times) {
        my $mytime = $_;
        my ($hour, $minute) = (@$mytime[0], @$mytime[1]);
        if ($hour > 0 || $minute > 0) {
            $minute += $interval * $i;
            if ($minute > 59) {
                $hour += int($minute / 60);
                $minute = $minute % 60;
                if ($minute < 10) {
                    $minute = "0" . $minute;
                }
            }
        }
        
        sub print_time {
            my ($hour, $minute) = @_;
            if ($hour == 0 && $minute == 0) {
                print "-";
            } else {
                if ($hour < 12) {
                    print "$hour$minute" . "a";
                } else {
                    if ($hour > 12) {
                        $hour -= 12;
                    }
                    print "$hour$minute" . "p";
                }
            }
        }
 
        if (!$first) {
            print " ";
            print_time($hour, $minute);
        } else {
            $first = 0;
            print_time($hour, $minute);
        }
    }
print "\n";
}