"W. eWatson" <wolftra...@invalid.com> writes: > Lie Ryan wrote: > > what's strange about it? the difference between 2009/01/02 13:01:15 > > and 2009/01/04 13:01:15 is indeed 2 days... Can you elaborate what > > do you mean by 'strange'?
> Easily. In one case, it produces a one argument funcion, and the other > 2, possibly even a year if that differs. In both cases it produces not a function, but a ‘datetime.timedelta’ object:: >>> import datetime >>> t1 = datetime.datetime(2009, 1, 2, 13, 1, 15) >>> t2 = datetime.datetime(2009, 1, 4, 13, 1, 15) >>> type(t1) <type 'datetime.datetime'> >>> type(t2) <type 'datetime.datetime'> >>> dt = (t2 - t1) >>> type(dt) <type 'datetime.timedelta'> What you're seeing in the interactive interpreter is a string representation of the object:: >>> dt datetime.timedelta(2) This is no different from what's going on with any other string representation. The representation is not the value. > How does one "unload" this structure to get the seconds and days? It's customary to consult the documentation for questions like that <URL:http://docs.python.org/library/datetime.html#datetime.timedelta>. > To find the difference more clearly. Why not just return (0,2,3555) Because the ‘datetime.timedelta’ type is more flexible than a tuple, and has named attributes as documented at the above URL:: >>> dt.days 2 >>> dt.seconds 0 >>> dt.microseconds 0 -- \ “If you have the facts on your side, pound the facts. If you | `\ have the law on your side, pound the law. If you have neither | _o__) on your side, pound the table.” —anonymous | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list