Time-date as an integer

Grant Edwards grante at visi.com
Tue Aug 24 10:44:27 EDT 2004


On 2004-08-24, Charles Hixson <charleshixsn at earthlink.net> wrote:
> This is a concept, not a finished program, and an extract from a class 
> at that...so forgive any illegalities, but:
> import    datetime;
>   def    calcNodeId(self):
>     t    =    datetime.utcnow()
>     val    =    t.year *    133920000000    +          #    12 months
>                     t.month    *    11160000000    +    #    31 days
>                     t.hour    *    3600000000    +         #    60 minutes
>                     t.minute    *    60000000    +         #    60 seconds
>                     t.second    *    1000000    +    t.microsecond
>     if    val <=    self._dTime:
>       val    =    self._dTime + 1
>     self._dTime    =    val
>     return    val
>
> This is the best that I've been able to come up with in getting a 
> date-time as an integer.  It feels like one of the time or date 
> libraries should have a better solution, but if so, I haven't found it.  
> Can anyone suggest a better approach?

Don't forget about months with lengths other than 31.

Don't forget about leap years.

Don't forget that 2000 was a leap year but 1900 and 2100 aren't.

Don't forget about leap-seconds.

Don't forget about calendar discontinuities (which occurred at
different places in different locales).

-- 
Grant Edwards                   grante             Yow!  .. he dominates the
                                  at               DECADENT SUBWAY SCENE.
                               visi.com            



More information about the Python-list mailing list