All those functions still take the same constructor though.
date d(2002,Jan,10);
To access and use any of them it means I'd need to split up the strings from file from 01/01/2001 and convert month to Mmm, and reverse it all
----> 2001,Jan,01
edit: and then reverse the proceedure for the output
I completely agree with that parameter ordering. Anyone who uses little endian or US-endian dates instants in a computing system deserves to be dragged to the back and shot.
I hate to jump on the gcampton-shooting wagon, but why doesn't yyyy-mm-dd makes sense to you? Ignoring the ISO standard, if I were to write a function that took a year, and month, and a day of the month and had default parameters for each, I'd have the year be the most important date (first), month second (second), and the day third (last), as each clamps down on the set of possible dates in order while keeping the elements continuous (the difference between the possible days never increases more than one day).
The ISO standard is bias due to being written by Americans.
The ISO standard is unbiased because it's designed so that the string representation can be sorted correctly by a lexicographical compare function: strcmp("2010-05-06","2010-06-05")<0
This isn't by accident; it was designed to meet this requirement (and also because there's no ambiguity as to what endianness the data has).
I don't think I've ever heard anyone say it like that in English.
Human representations are designed to put the most relevant information first. Machine representations are designed to work well with simple algorithms and to prevent ambiguity.
You're not going to argue that we should go back to two-digit year representations, are you?