Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > A little help with time calculations

Reply
Thread Tools

A little help with time calculations

 
 
iminal
Guest
Posts: n/a
 
      10-18-2005
I am trying to make a very simple program and am very new to the whole
programming thing. my program is supposed to ask a user for any time in
the for format XX:XX:XX and then ask for a time corrrection to add or
subtract to this. my only problem is that once the user inputs the time
and the correction its adding it like it was 100 not to 60 any help?

 
Reply With Quote
 
 
 
 
Diez B. Roggisch
Guest
Posts: n/a
 
      10-18-2005
iminal wrote:
> I am trying to make a very simple program and am very new to the whole
> programming thing. my program is supposed to ask a user for any time in
> the for format XX:XX:XX and then ask for a time corrrection to add or
> subtract to this. my only problem is that once the user inputs the time
> and the correction its adding it like it was 100 not to 60 any help?


Without code, nobody can help you.

Regards,

Diez
 
Reply With Quote
 
 
 
 
Steve Holden
Guest
Posts: n/a
 
      10-18-2005
iminal wrote:
> I am trying to make a very simple program and am very new to the whole
> programming thing. my program is supposed to ask a user for any time in
> the for format XX:XX:XX and then ask for a time corrrection to add or
> subtract to this. my only problem is that once the user inputs the time
> and the correction its adding it like it was 100 not to 60 any help?
>

If you're new to programming you may not yet have realised that many
problems come down to finding appropriate representations for things.

Since you want to do arithmetic on times, why not store them as seconds?
Then you just need to work out how to convert times to seconds, and
seconds to times - Python's arithmetic will do the rest.

See if you can make anything of these functions (which I haven't tested,
so you're allowed to complain if they don't work :

def timetosecs(s):
hms = s.split(":") # [hh, mm, ss]
secs = 0
for t in hms:
secs = secs * 60 + int(t)
return secs

def secstotime(secs):
hms = []
while secs:
hms.append(str(secs % 60))
secs = secs // 60
return ":".join(hms)

regards
Steve
--
Steve Holden +44 150 684 7255 +1 800 494 3119
Holden Web LLC www.holdenweb.com
PyCon TX 2006 www.python.org/pycon/

 
Reply With Quote
 
iminal
Guest
Posts: n/a
 
      10-18-2005
what i have so far is :

# Get values needed to make time calculations
CT = input("input your chronometer time (ex. 07:21:46): ")
CE = input("input your chronometer correction (ex. 00:01:32): ")
CEfastslow = raw_input("is your chronometer correction fast or
slow: ")

#decide either to subtract or add CE from/to CT
if CEfastslow == "fast":
CEfastslow = CT - CE
if CEfastslow == "slow":
CEfastslow = CT + CE

but this just doesnt deal with the numbers in time format its acting
like they are just regualr integers adding them up like regular numbers

i am trying to figure out what u posted and it seems a little
complicated im trying to add it in somehow and figure out exactly what
its doing but still looking for a little easier of a way

thanks so far

 
Reply With Quote
 
Steve Holden
Guest
Posts: n/a
 
      10-19-2005
iminal wrote:
> what i have so far is :
>
> # Get values needed to make time calculations
> CT = input("input your chronometer time (ex. 07:21:46): ")
> CE = input("input your chronometer correction (ex. 00:01:32): ")
> CEfastslow = raw_input("is your chronometer correction fast or
> slow: ")
>
> #decide either to subtract or add CE from/to CT
> if CEfastslow == "fast":
> CEfastslow = CT - CE
> if CEfastslow == "slow":
> CEfastslow = CT + CE
>
> but this just doesnt deal with the numbers in time format its acting
> like they are just regualr integers adding them up like regular numbers
>

Well, how is the interpreter supposed to know that they are times?
Remember that the Python language doesn't have times as a basic data
type, and input(...) treats what you enter as Python data (unlike
raw_input()).

> i am trying to figure out what u posted and it seems a little
> complicated im trying to add it in somehow and figure out exactly what
> its doing but still looking for a little easier of a way
>

Well, the code I posted was untested, and I find two things wrong with
it straight away: Firstly, it won't include leading zeros when
converting seconds to a time, and secondly it puts the hours, minutes
and seconds in the wrong order.

> thanks so far
>

The idea, though, is to read strings lime "07:20:44" and convert them
into something that Python *can* do arithmetic on. I defined a function,
timetosecs, that would let you do this.

So your program should look something like:

# Put function definitions here ...
CT = raw_input("input your chronometer time (ex. 07:21:46): ")
CE = raw_input("input your chronometer correction (ex. 00:01:32): ")
CEfastslow = raw_input("is your chronometer correction fast or slow: ")

Tsecs = timetosecs(CT)
Esecs = timetosecs(CE)

#decide either to subtract or add CE from/to CT
if CEfastslow == "fast":
CEfastslow = Tsecs - Esecs
if CEfastslow == "slow":
CEfastslow = Tsecs + Esecs

print "New time:", secstotime(CEfastslow)

Hope this gets you a bit closer to a solution.

regards
Steve
--
Steve Holden +44 150 684 7255 +1 800 494 3119
Holden Web LLC www.holdenweb.com
PyCon TX 2006 www.python.org/pycon/

 
Reply With Quote
 
iminal
Guest
Posts: n/a
 
      10-19-2005
thanks

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
formatted 'time' data in calculations Ross Python 8 01-08-2009 05:17 PM
1 little 2 little 3 little Kennedys dale Digital Photography 0 03-23-2008 01:03 PM
Xcell time/currency calculations. Crash NZ Computing 11 09-03-2007 08:22 AM
Date calculations in multiple time zones lduperval@gmail.com Javascript 8 09-17-2005 03:26 PM
Week calculations (Date/Time) androtech ASP General 2 01-15-2004 10:11 PM



Advertisments
 



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