[Python-Dev] dateutil (original) (raw)

Gustavo Niemeyer niemeyer at conectiva.com
Mon Mar 15 09:27:59 EST 2004


Hello Greg!

Isn't the name "relativedelta" somewhat superfluouslyredundant? The word "delta" already implies something relative.

IMO, no. The "relative" here means that the operation made is dependent on what you apply it, and not a "fixed" delta as timedelta would do. Applying the same delta on two different dates might return the same result, for example.

(It's also ratherhardtoread.)

Ok, I'll rename it to "relativetimedelta". ;-))

> >>> d > datetime.datetime(2004, 4, 4, 0, 0) > >>> d+relativedelta(month=1) > datetime.datetime(2004, 1, 4, 0, 0)

So a relativedelta can affect things in a way that's not relative at all? That sounds very confusing.

It makes sense in this context. Please, have a look at the examples in the documentation. Tim is right about this being based on mxDateTime.

Wouldn't it be better if relativedelta confined itself to relative things only, and provide some other way of absolutely setting fields of a date?

I don't think so, but I'm of course open to suggestions.

> MO(0) shouldn't be used as it makes no sense, but is the same > as MO(+1) which is the same as MO(1).

So there is a hole at 0. Something about that smells wrong.

If you discover what, please tell me. :-)

> The expected type [of leapdays] is an integer. This is mainly used > to implement nlyearday.

Would a value other than 0 or 1 ever make sense for this? I'm having a hard time imagining how it could -- but maybe my imagination isn't twisted enough...

The only used values now are 0 and -1, for nlyearday. This parameter is indeed confusing, as it doesn't seem useful by itself. I'll probably remove it from the documentation.

> >>> date(2000,2,29)+relativedelta(months=+12) > datetime.date(2001, 2, 28)

I think the OP's question was what happens if you do for i in range(12): d += relativedelta(months=+1)

I answered that just below the above example. It lands on the same date.

Thanks for exposing your ideas!

-- Gustavo Niemeyer http://niemeyer.net



More information about the Python-Dev mailing list