in reply to Re: Determining gaps in time ranges
in thread Determining gaps in time ranges
Or TIMTOWDI
my @array = ( [ '03:30', '05:45' ], [ '05:45', '09:15' ], [ '10:00', '11:35' ], [ '11:00', '15:40' ] ); sub hhmm2min { die "Data error $_[0] not in format HH:MM\n" unless $_[0] =~ m/(\d +\d):(\d\d)/; return $1*60+$2; } sub min2hhmm { die "Data error $_[0] > 24:00\n" if $_[0] > 24*60; return sprintf "%02d:%02d", int($_[0]/60), $_[0]%60; } @array = sort{ $a->[0]<=>$b->[0] }map{ [ hhmm2min($_->[0]), hhmm2min($ +_->[1]) ] }@array; my $cur = 0; my @missing = (); for my $r( @array ) { push @missing, [ min2hhmm($cur), min2hhmm( $r->[0] ) ] if $cur < $ +r->[0]; #$cur = $r->[1]; # bug $cur = $r->[1] unless $cur > $r->[1]; } push @missing, [ min2hhmm($cur), '24:00' ] unless $cur == 24*60; use Data::Dumper; print Dumper \@missing; __DATA__ $VAR1 = [ [ '00:00', '03:30' ], [ '09:15', '10:00' ], [ '15:40', '24:00' ] ];
cheers
tachyon
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Re: Determining gaps in time ranges
by Sprenger000 (Initiate) on Apr 02, 2004 at 03:15 UTC | |
by BrowserUk (Patriarch) on Apr 02, 2004 at 03:32 UTC | |
by tachyon (Chancellor) on Apr 02, 2004 at 07:54 UTC | |
by tachyon (Chancellor) on Apr 02, 2004 at 07:45 UTC |