f



time.time()

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?

0
bart_nessux (117)
1/24/2004 6:01:40 PM
comp.lang.python 77058 articles. 6 followers. Post Follow

8 Replies
1747 Views

Similar Articles

[PageSpeed] 39

On Sat, 24 Jan 2004 13:01:40 -0500, Bart Nessux <bart_nessux@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.
0
carroll1 (31)
1/24/2004 6:55:54 PM
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.


0
jepler (801)
1/24/2004 7:01:19 PM
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.

0
bart_nessux (117)
1/24/2004 9:25:01 PM
bart,

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

Jeff

0
jepler (801)
1/24/2004 9:33:55 PM
> 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
0
jcarlson1 (240)
1/24/2004 9:42:13 PM
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

0
__peter__ (4031)
1/24/2004 9:55:19 PM
Jeff Epler wrote:
> bart,
> 
> a-b/c evaluates as a-(b/c)
> 
> Jeff
> 

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

0
bart_nessux (117)
1/24/2004 11:40:58 PM
On Sat, 24 Jan 2004 16:25:01 -0500, Bart Nessux <bart_nessux@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


0
carroll1 (31)
1/25/2004 12:24:45 AM
Reply: