datetime: .datetime-.datetime = .timedelta, .time-.time=TypeError ?

datetime: .datetime-.datetime = .timedelta, .time-.time=TypeError ?

Post by Christos T » Tue, 09 Sep 2003 22:00:25


Is there any reason for datetime.time subtraction not returning a
datetime.timedelta object, just like datetime.datetime subtraction does?
It doesn't feel good having to use dumb year, month, day arguments
constructing datetime object when doing only time arithmetic.

If there is no specific reason apart from lack of time (no pun), I'm
willing to research it and write a patch (I haven't seen the code, but I
believe it would be quite easy).

TIA
--
TZOTZIOY, I speak England very best,
Microsoft Security Alert: the Matrix began as open source.
 
 
 

datetime: .datetime-.datetime = .timedelta, .time-.time=TypeError ?

Post by Tim Peter » Wed, 10 Sep 2003 09:57:46

[Christos TZOTZIOY Georgiou]

Guido didn't want time objects participating in arithmetic because the
desired semantics are unclear. For example, if you allow

time1 - time2

to return a timedelta, then you'll also want to allow

time2 + timedelta

to return a time, and then you've got to make up rules for what happens when
adding spills over a midnight boundary. Should it "wrap around"? Raise
OverflowError? Guido didn't want to endure arguments about that.

Note that the analogous question for datetime objects is easy, because
there's a well-defined Beginning and End to the span of times datetime
objects can represent -- OverflowError is the obvious thing to get if you
try to compute a result spilling over those bounds. Try adding "a year" to
"midnight", though, and half the world will curse you if it raises an
exception, while the other half will curse you if it says "hmm -- still
midnight". A third half will whine about leap seconds <wink>.


What's wrong with using timedeltas?

0:30:00


Selling it would be harder than writing it.

 
 
 

datetime: .datetime-.datetime = .timedelta, .time-.time=TypeError ?

Post by Christos T » Wed, 10 Sep 2003 16:39:38

On Mon, 8 Sep 2003 20:57:46 -0400, rumours say that "Tim Peters"
< XXXX@XXXXX.COM > might have written:


So it's by design.

[snip of the above not applying to datetime objects]


A perfectly clear solution; it's just the RTFM-F [1] virus, I overlooked
the keyword arguments...


Basically, I asked for some reasoning --which you provided in the first
paragraphs of your reply-- just in case the issue was overlooked; since
it wasn't (and I got a solution!), I'm OK and not at all anxious to sell
a patch :)

Thanks.

[1] final F standing for First
--
TZOTZIOY, I speak England very best,
Microsoft Security Alert: the Matrix began as open source.
 
 
 

datetime: .datetime-.datetime = .timedelta, .time-.time=TypeError ?

Post by Tim Robert » Fri, 12 Sep 2003 13:35:30


Can you please end my suspense and explain what TZOTZIOY means? Some how,
"Time Zone Out, Time Zone In, One Year" just doesn't cut it.
--
- Tim Roberts, XXXX@XXXXX.COM
Providenza & Boekelheide, Inc.
 
 
 

datetime: .datetime-.datetime = .timedelta, .time-.time=TypeError ?

Post by Christos T » Sun, 14 Sep 2003 19:44:21

On Wed, 10 Sep 2003 21:35:30 -0700, rumours say that Tim Roberts
< XXXX@XXXXX.COM > might have written:


Suspense? Wow! :)

Well, it's not an English acronym, it's just a unique word, a play on my
last name which facilitates identifying my posts (ie Google searches,
and DejaNews in older times). Just that.

Earlier replies to similar questions:
http://www.yqcomputer.com/ %404ax.com
http://www.yqcomputer.com/ %40147.102.222.230

PS The Guide is useful too: http://www.yqcomputer.com/ :)
--
TZOTZIOY, I speak England very best,
Microsoft Security Alert: the Matrix began as open source.