niemeyer at conectiva.com
Mon Mar 15 09:27:59 EST 2004
> 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
> 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
Thanks for exposing your ideas!
More information about the Python-Dev