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

Moore, Paul Paul.Moore at atosorigin.com
Mon Mar 15 10:52:17 EST 2004


From: Gustavo Niemeyer [mailto:niemeyer at conectiva.com]

>> > d.forwardmonths(3).endofmonth() >> >> In dateutil, I think it's d + relativedelta(months=+1, day=1, days=-1). >> Arguably, this is fairly trivial (highly non-obvious, but trivial...) > > Yes, it'd work, but "d + relativedelta(day=31)" would be enough.

Hmm, I feel vaguely uncomfortable actually relying on the "round down out of range values" behaviour. Presumably day=1000 would also work, and would look even stranger to me :-) This was a design decision, and I confess I'm pretty satisfied by the results of this decision. This simple decision created consistent and expectable results for operations which are not obvious. Also, without this feature, I see almost no reason for using this class instead of timedelta.

How about a module-level constant dateutil.LAST_DAY = 31? Then we have

d + relativedelta(day=LAST_DAY)

which looks pretty nice. Actually as someone else suggested, using -1 for the last day (and maybe -2, -3... for the next to last, etc) would also make sense.

Paul



More information about the Python-Dev mailing list