[ python-Bugs-1569623 ] datetime.datetime subtraction bug
SourceForge.net
noreply at sourceforge.net
Tue Oct 3 01:27:51 CEST 2006
Bugs item #1569623, was opened at 2006-10-02 19:16
Message generated for change (Comment added) made by tim_one
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1569623&group_id=5470
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Extension Modules
>Group: Not a Bug
>Status: Closed
>Resolution: Invalid
Priority: 5
Submitted By: David Fugate (dfugate_ms)
Assigned to: Nobody/Anonymous (nobody)
Summary: datetime.datetime subtraction bug
Initial Comment:
Python version: 2.5
OS name and version: Windows XP SP2
Email: dfugate at microsoft.com
The datetime.datetime subtraction operator seems to
have a bug in it:
Python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC
v.1310 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for
more information.
>>> import datetime
>>> x = datetime.datetime(2006, 9, 29, 15, 37, 28, 686001)
>>> y = datetime.datetime(2006, 9, 29, 15, 37, 28, 686000)
>>> x - y
datetime.timedelta(0, 0, 1)
>>> y - x
datetime.timedelta(-1, 86399, 999999)
Here, the result of y - x should be timedelta(0, 0, -1).
----------------------------------------------------------------------
>Comment By: Tim Peters (tim_one)
Date: 2006-10-02 19:27
Message:
Logged In: YES
user_id=31435
Sorry, nope. As the timedelta docs say:
"""
...
days, seconds and microseconds are then normalized so that
the representation is unique, with
0 <= microseconds < 1000000
0 <= seconds < 3600*24 (the number of seconds in one day)
-999999999 <= days <= 999999999
...
If the normalized value of days lies outside the indicated
range, OverflowError is raised.
Note that normalization of negative values may be surprising
at first. For example,
>>> d = timedelta(microseconds=-1)
>>> (d.days, d.seconds, d.microseconds)
(-1, 86399, 999999)
"""
Which is exactly what you're seeing.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1569623&group_id=5470
More information about the Python-bugs-list
mailing list