Difference between two dates in seconds

flupke flupke at nonexistingdomain.com
Thu Sep 28 03:00:44 EDT 2006


Fredrik Lundh schreef:
<snip>
> 
>>>> def get_seconds(td):
> ...     return td.days * (24*60*60) + td.seconds
> ...
>>>> import dis
>>>> dis.dis(get_seconds)
>   2           0 LOAD_FAST                0 (td)
>               3 LOAD_ATTR                0 (days)
>               6 LOAD_CONST               4 (86400)
>               9 BINARY_MULTIPLY
>              10 LOAD_FAST                0 (td)
>              13 LOAD_ATTR                1 (seconds)
>              16 BINARY_ADD
>              17 RETURN_VALUE
> 
> </F>

Ha, i didn't know about the dis module.
Looks fun.
I get these results:

>>> def get_seconds(td):
...   return td.days * (24*60*60) + td.seconds
...
>>> dis.dis(get_seconds)
  2           0 LOAD_FAST                0 (td)
              3 LOAD_ATTR                1 (days)
              6 LOAD_CONST               1 (24)
              9 LOAD_CONST               2 (60)
             12 BINARY_MULTIPLY
             13 LOAD_CONST               2 (60)
             16 BINARY_MULTIPLY
             17 BINARY_MULTIPLY
             18 LOAD_FAST                0 (td)
             21 LOAD_ATTR                2 (seconds)
             24 BINARY_ADD
             25 RETURN_VALUE

>>> def get_seconds2(td):
...   return td.days * 86400 + td.seconds

>>> dis.dis(get_seconds2)
  2           0 LOAD_FAST                0 (td)
              3 LOAD_ATTR                1 (days)
              6 LOAD_CONST               1 (86400)
              9 BINARY_MULTIPLY
             10 LOAD_FAST                0 (td)
             13 LOAD_ATTR                2 (seconds)
             16 BINARY_ADD
             17 RETURN_VALUE

Using 86400 instead of (24*60*60) is faster

Benedict



More information about the Python-list mailing list