[Tutor] time calc
gew75 at hotmail.com
Fri Jun 18 20:24:49 EDT 2004
The time math shouldn't be too hard. What format is your duration in?
Hours:Mins? Minutes? Hours.<percentage_of_hour>?
To get around the time math, I would use a single intermediary
calculation; convert all pairs first into minutes. This would be different
if you have the duration in a different format, but on the back of the tapes
that I have it says minutes, so I'll use that for the time being :).
For each time pair, (hh:mm) simply think of the (hh) part as mm*60. Then,
to obtain total minutes, we have an easy operation -- totalMinutes = hh*60 +
mm. You can perform the conversion, etc yourself. To get the original
tuple, use the string.split(':') method.
Once that's finished we can add the duration on, then convert back to time
form again. The easiest way in my mind for this is to use modulus. As a
quick reminder/introduction :
x (mod y) = remainder of x upon repeated division of y
So that we want
total_minutes (mod 60) = new_minutes
Also, new_hours = total_minutes / 60, which is regular integer division.
Python has an incredibly useful builtin with divmod(..), which performs
integer division and modulus on the two arguments. Modulus in python is
with the % operator.
So, recapping in code:
>>> hhmm = (2,45)
>>> total_minutes = hhmm*60 + hhmm
>>> total_minutes += 120
>>> divmod(total_minutes, 60)
----- Original Message -----
From: "kevin parks" <kp8 at mac.com>
To: <tutor at python.org>
Cc: "kevin parks" <kp8 at mac.com>
Sent: Saturday, June 19, 2004 3:36 AM
Subject: [Tutor] time calc
> hi all.
> I have a bit of a task that i have been doing by hand, but as it turns
> out there is pages and pages more of this so i would like to make a
> python script that does this work and have it handy.
> I have a list that has several columns like so:
> 1 1 1 00:23
> 1 2 2 8:23
> 1 3 3 9:41
> 1 4 3 10:47
> 1 5 3 11:21
> What this is a list that has tape number, program number, item number
> and start time for a recording.
> What i want to do is append the duration to the end of this list by
> subtracting the start of the item from the start time of the next so
> that the first line would look like:
> 1 1 1 00:23 08:00
> 1 2 2 8:23 01:18
> So the task is really two part : reading in a list of numbers and
> adding one more piece of data and (2) doing time (base 60) math. It is
> the time math part i simply can't get my head around. Anyone know if
> there is a module that does time math? or a method for doing this by
> kevin parks
> Tutor maillist - Tutor at python.org
More information about the Tutor