On 11 Feb 2003, at 18:23, George Russell wrote:
Add 1 month to 1st February 2003. This produces 1st March 2003. (with no overflow.)
Here, you add 28 days, which is the number of days in (this) February. Fair enough.
Add 1 month to 31st January 2003. Then we get 31st February 2003. This clearly requires an overflow; we note that February 2003 has 28 days, and so roll over to 3rd March 2003.
Here, you add 31 days, which is the number of days in January. Also fair enough.
Note that in this case "Add 1 month" is not a monotonic operation.
Add 1 minute to 23:59:60 31st December 2003. I assume that this is a valid time and that it will be a leap second; if not choose some other year.
This is complicated since we have multiple overflows. First stage you get the invalid time
23:60:60 31st December 2003.
But **HERE**, you add 60 seconds. Why? If you want to add "1 minute" to 23:59:60 31st December 2003, and assuming still that it is a leap minute, then to be consistent with the rule for months, I think you ought to add **61** seconds---the number of seconds in *this* minute. If the problem had been to add "60 seconds", I would agree, but if the problem is to add "1 minute", I think there's a flaw here. /| . . . (_|/ o n a t h a n /| (_/