
From: "Powell, Gary" <powellg@amazon.com>
From: Jody Hagins <jody-boost-011304@atdesk.com>
"Powell, Gary" <powellg@amazon.com> wrote:
Or, instead, you use something like...
date = January END or LAST;
meaning the last day of the month. Then, adding a month would always jump to the last day of the next month. I imagine with...
That would work well.
Ok, but you need more than just LAST, you need LAST-1, LAST-2, and LAST-3
Why? I can't imagine a good use case for wanting one, two, or three days before the end of the month as a special form of date.
That's why I use seconds..
You still have to make them useful to humans for I/O.
date = February 28; add_month(date);
you would want March 28, and not March 31???
Yes.
I would expect this as well. the 28th is either LAST, or just plain old 28th.
Right. I took that example to mean it was the 28th day of the month of February. That is happened to be the last day of the month is irrelevant. The "LAST" or "END" form is quite separate.
Personally I like Jeff's solution, that you provide the increment function. Because it sounds like we have different use cases for "next month" The loose case of "see you for your next appointment next month", and "delivery is in One Month". Where 30 days is the "next month" vs the calendar end.
Yes, but I think it is reasonable for the library to provide one or two implementations and even make one the default. If the opportunity to customize the behavior exists, you've provided for the other cases. -- Rob Stewart stewart@sig.com Software Engineer http://www.sig.com Susquehanna International Group, LLP using std::disclaimer;