in reply to Re^2: Logical ways to calculate being within two times
in thread Logical ways to calculate being within two times
If I'm understanding you correctly,
Given your 20:00 start time and 12 hours duration, calculate epoch times:
$s = '20:00'; $d = 12; $e = time; $e += 60 until localtime( $e ) =~ m[$s:]; $start = $e; $end = $start + $d * 3600; printf "start:%f end:%f\n", $start, $end;; start:1479931244.206990 end:1479974444.206990
The code above assumes that if a start time is given that is earlier than the current time, it means that time tomorrow.
You might be concerned by the 'crude' mechanism of converting the time to an epoch -- the until loop -- but it will take at most 1/10,000th of a second to do it.
It also assumes that time will be given to the nearest minute; though it is easily changed to allow to the nearest second, but the epoch conversion would then take upto 5/10,000ths of a second.
Of course, you could also load the whole of DateTime to do the conversion, but that probably takes longer just to load than this method :)
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Logical ways to calculate being within two times
by stevieb (Canon) on Nov 24, 2016 at 01:28 UTC |