[Python-Dev] dateutil
Greg Ewing
greg at cosc.canterbury.ac.nz
Sun Mar 14 22:17:50 EST 2004
Some thoughts about this relativedelta stuff:
Isn't the name "relativedelta" somewhat superfluouslyredundant?
The word "delta" already implies something relative.
(It's also ratherhardtoread.)
> >>> 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.
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?
> 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.
> 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...
> > Is it true that adding relativedelta(months=+1) 12 times isn't necessarily
> > the same as adding relativedelta(years=+1) once?
>
> They land on the same date. While the documentation looks somewhat
> confusing, the implementation is not. For example:
>
> >>> 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)
Greg Ewing, Computer Science Dept, +--------------------------------------+
University of Canterbury, | A citizen of NewZealandCorp, a |
Christchurch, New Zealand | wholly-owned subsidiary of USA Inc. |
greg at cosc.canterbury.ac.nz +--------------------------------------+
More information about the Python-Dev
mailing list