time.time()

B

Bart Nessux

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?
 
T

Terry Carroll

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:
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.
 
J

Jeff Epler

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


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.
 
B

Bart Nessux

Terry said:
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.
 
J

Josiah Carlson

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
 
P

Peter Otten

Bart said:
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.
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:
.... global _time
.... try:
.... return _time
.... except NameError:
.... import time
.... _time = time.time()
.... return _time
........ global _time
.... try:
.... _time += s
.... except NameError:
.... import time
.... _time = time.time() + s
 
T

Terry Carroll

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,176
Messages
2,570,950
Members
47,500
Latest member
ArianneJsb

Latest Threads

Top