By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
443,432 Members | 790 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 443,432 IT Pros & Developers. It's quick & easy.

time.time()

P: n/a
am I doing this wrong:

print (time.time() / 60) / 60 #time.time has been running for many hours

if time.time() was (21600/60) then that would equal 360/60 which would
be 6, but I'm not getting 6 so I'm not doing the division right, any tips?

Jul 18 '05 #1
Share this Question
Share on Google+
8 Replies


P: n/a
On Sat, 24 Jan 2004 13:01:40 -0500, Bart Nessux <ba*********@hotmail.com>
wrote:
am I doing this wrong:

print (time.time() / 60) / 60 #time.time has been running for many hours

if time.time() was (21600/60) then that would equal 360/60 which would
be 6, but I'm not getting 6 so I'm not doing the division right, any tips?


time.time() returns the number of seconds since the epoch. The epoch is
generally Jan 1, 1970; you can check by trying time.gmtime(0).

You're expecting time.time() to be 21600/60, or, in other words, for
time() to be 1548; but 1548 seconds is only about 25 minutes. It's been a
little more than 34 years since Jan 1, 1970, so the number you should
expect from time.time() should be in the neighborhood of 34 years * 365.25
days/year * 24 hours/day * 60 min/hour * 60 sec/min = 1072958400.

Trying time.time() directly confirms this:
time.time()

1074969863.888

Yeah, it's not on the nose, but close enough for a sanity check. By the
way, this is usually a good thing to try when you're lost at sea like this
-- go back to the original input data, in this case, time.time() output,
and see if it's giving you what you expect.

It sounds like you're thinking time.time() does something else, which
you're trying to do. What is that? There might be another function for
you.
Jul 18 '05 #2

P: n/a
time.time() returns seconds since a particular time in the past ("the
Epoch"), not seconds since program start or anything like that.

import time
help(time.time)


Help on built-in function time:

time(...)
time() -> floating point number

Return the current time in seconds since the Epoch.
Fractions of a second may be present if the system clock provides them.
Jul 18 '05 #3

P: n/a
Terry Carroll wrote:
It sounds like you're thinking time.time() does something else, which
you're trying to do. What is that? There might be another function for
you.


I should have been more clear... here's the code:

x = time.time()
fp = os.popen("some_process", "r")
fp.read()
fp.close()
print (time.time()-x/60)/60

If fp runs for many hours (in my case it does), I want time.time() to
return the time it runs in seconds which I would then divide by 60 to
get the total amount of minutes which I would then divide by 60 to get
the total amount of hours that the process has ran... does that make
sense? I don't need to be super precise, just within 1 minute or so of
the actual amount of time that the process required to run.

Jul 18 '05 #4

P: n/a
> x = time.time()
fp = os.popen("some_process", "r")
fp.read()
fp.close()
print (time.time()-x/60)/60


Parenthesis are your friend:
print (time.time()-x)/3600

- Josiah
Jul 18 '05 #5

P: n/a
Bart Nessux wrote:
Terry Carroll wrote:
It sounds like you're thinking time.time() does something else, which
you're trying to do. What is that? There might be another function for
you.
I should have been more clear... here's the code:


That's not only clearer - that's different :-)
x = time.time()
fp = os.popen("some_process", "r")
fp.read()
fp.close()
print (time.time()-x/60)/60

If fp runs for many hours (in my case it does), I want time.time() to
return the time it runs in seconds which I would then divide by 60 to
get the total amount of minutes which I would then divide by 60 to get
the total amount of hours that the process has ran... does that make
sense? I don't need to be super precise, just within 1 minute or so of
the actual amount of time that the process required to run.

start = time()
start 1074980579.623781 sleep(7200)
duration = time() - start
print "duration in hours:", duration/60/60 duration in hours: 2.0 (time() - start) / 60 / 60 2.0

In the last expression, the parentheses are necessary, because - has lower
precedence than /, i. e. otherwise you would calculate time() -
(start/60/60). Note how I introduced an additional "duration" variable. If
a calculation does not yield the expected result, it is often helpful to
inspect some intermediate values.

Peter

PS: I cheated with my sleep() and time() functions:
def time(): .... global _time
.... try:
.... return _time
.... except NameError:
.... import time
.... _time = time.time()
.... return _time
.... def sleep(s):

.... global _time
.... try:
.... _time += s
.... except NameError:
.... import time
.... _time = time.time() + s

Jul 18 '05 #6

P: n/a
bart,

a-b/c evaluates as a-(b/c)

Jeff

Jul 18 '05 #7

P: n/a
Jeff Epler wrote:
bart,

a-b/c evaluates as a-(b/c)

Jeff


Ah, yes... silly me. That's the problem.

Jul 18 '05 #8

P: n/a
On Sat, 24 Jan 2004 16:25:01 -0500, Bart Nessux <ba*********@hotmail.com>
wrote:
Terry Carroll wrote:
It sounds like you're thinking time.time() does something else, which
you're trying to do. What is that? There might be another function for
you.


I should have been more clear... here's the code:

x = time.time()
fp = os.popen("some_process", "r")
fp.read()
fp.close()
print (time.time()-x/60)/60


Ah. You have a precedence problem.

Try:

print ((time.time()-x)/60)/60
Jul 18 '05 #9

This discussion thread is closed

Replies have been disabled for this discussion.