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

  • Thread starter Christos TZOTZIOY Georgiou
  • Start date
C

Christos TZOTZIOY Georgiou

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
 
C

Christos TZOTZIOY Georgiou

[Christos TZOTZIOY Georgiou]
Is there any reason for datetime.time subtraction not returning a
datetime.timedelta object, just like datetime.datetime subtraction
does?

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.

So it's by design.

[snip of the above not applying to datetime objects]
What's wrong with using timedeltas?

0:30:00

A perfectly clear solution; it's just the RTFM-F [1] virus, I overlooked
the keyword arguments...
Selling it would be harder than writing it.

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
 
T

Tim Roberts

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.
 
C

Christos TZOTZIOY Georgiou

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.

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://groups.google.com/[email protected]
http://groups.google.com/[email protected]

PS The Guide is useful too: http://www.bbc.co.uk/dna/h2g2/U83754 :)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,051
Latest member
CarleyMcCr

Latest Threads

Top