From: Gustavo Niemeyer [mailto:niemeyer at conectiva.com] >> >> > d.forward_months(3).end_of_month() >> >> >> >> 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
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4