
Paul Eggert wrote:
You propose new conversion specifiers for strftime in C9x, the new C standard, in your document ISO/IEC JTC1/SC22/WG14 N733 <http://www.gold.net/users/cdwf/c/wg14n733.txt> (1997-07-01).
I noticed another doc, N735, about wider changes in the library. <URL:http://www.gold.net/users/cdwf/c/wg14n735.txt> (1997-07-04). Item 20-25 (at the end) are relevant to the date and time functions. In particular, Item 22 is relevant to the same problem Paul quoted. In N733, Paul read
%V is replaced by the ISO 8601 week number of the year
Clive's document add that the admissible range is [00-53]. It should be put in relief that N735 adds: %#W - ISO 8601 week number ) If %W would be zero, the date is %#y - ISO 8601 week number year % 100 ) treated as belonging to week 53 %#Y - ISO 8601 week number year ) of the previous year (Note: it could be week *52* of the previous year). I read this the following way (this is nothing official): For Tuesday 1996-12-31, we should have: %y 96 %U 52 %W 52 %V 53 %#W 01 the correct ISO 8601 week %#y 97 the correct ISO 8601 year associated with the week number For Friday 1999-01-01, we should have: %y 99 %U 00 %W 00 %V 00 %#W 53 the correct ISO 8601 week %#y 98 the correct ISO 8601 year associated with the week number For Sunday 1999-01-03, we should have: %y 99 %U 01 %W 00 %V 00 %#W 53 still in the previous year %#y 98 For the fun, I add Saturday 2000-01-01: %y 00 but still in the 20th century ! %U 00 %W 00 %V 00 %#W 53 %#y 99
To work around this shortcoming, I propose that C9x add Robbins's %G and %g formats, as follows:
%G is replaced by the year containing the ISO 8601 week %g is replaced by %G modulo 100
So %G is the same as %#Y, and %g the same as %#y. But as I showed before, there is a difference between %V, showing the week number _in_the_year_ based on Monday, the first Thrusday being in week 01 (and thus able to be 00), and the real ISO 8601 week number, %#W (restricted in range to 01-53). So we probably need two specifiers, instead of one in current art. I remember a discussion some time ago in the tz list about this: in particular, some point as strange to have a week number like 53 at the beginning of the year, or a low number at the end... Antoine