Gustavo Niemeyer <niemeyer at conectiva.com>: > 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. Hmmm. I see what you're getting at, but that interpretation goes beyond what the word "relative" suggests to me. Maybe it makes sense to you, but I think it's going to look confusing to anyone who doesn't share your brain state. Moreover, the terms "relative" and "delta" and the use of the "+" operator all suggest that these things form some kind of algebra, which they clearly don't. > > 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. This seems to be a matter of opinion. I've looked at the examples, and haven't seen anything to make me change my mind. I still think it's nonsensical to have something called a "delta" that doesn't behave algebraically when you add it to something. > > So there is a hole at 0. Something about that smells wrong. > > If you discover what, please tell me. :-) I think what it means is that you haven't got a single operation with an integer parameter. Rather, you've got two different operations, each of which has a natural number parameter, and you're using the sign of the parameter to encode which operation you want. Also, I don't understand why the "weeks" parameter isn't used to adjust the number of weeks here, instead of supplying it in a rather funky way as a kind of parameter to a parameter. In other words, instead of relativedelta(day = MO(+3)) why not relativedelta(day = MO, weeks = +2) which would make more sense to me. > > 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. In all cases? You mean that d = datetime(2000, 1, 31) for i in range(12): d += relativedelta(months=+1) will give the same result as d = datetime(2000, 1, 31) d += relativedelta(months=+12) and/or d = datetime(2000, 1, 31) d += relativedelta(years=+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 +--------------------------------------+
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