I think a solution that can tuned or tweaked to it's application would be must useful. It's all very well to insist on users using four- digit years, but for processing historical data, for example, one doesn't have the luxury of insisting on the data format, but has to use what is there :-(
Perhaps a variable that determines the transition from 19xx to 20xx would be appropriate? David PS- here in Canada we interpret 4/5/xxxx the opposite to the USA. I always use yyyy.mm.dd.hh.ss to the appropriate resolution :-) On 2010-01-16, at 10:42 AM, Stéphane Ducasse <[email protected]> wrote: > Yes > > Date fromString: '6-Jan-03' > -> 6 January 2003 > > is also wrong. So david just tried to patch this wrong behavior. > > Stef > > > On Jan 16, 2010, at 6:02 PM, [email protected] wrote: > >> I'm afraid the 'fix' is trying to repair something is not broken! >> >> Date fromString: '6-Jan-10'. giving "6 January 1910" has not >> anything wrong. Within five year we'll have users/programmers >> complaining that: >> >> Date fromString: '6-Jan-16'. gave "6 January 1916" and *obviously* >> it should have given "6 January 2015"!! >> >> Rather document that years given with two figures get counted from >> 1900 (as it used to be in last century) and have people to use four >> digits for years in the 2000s. >> >> Otherwise: >> >> 1) We need to get used to the concept of an epoch time for Pharo; or >> >> 2) the number to be tested has to be the current year! >> >> My 0.019999. . . >> >> -- >> Cesar Rabak >> >> >> Em 16/01/2010 07:57, Stéphane Ducasse < [email protected] >> > escreveu: >> >> >> hi guys >> >> can one of you give a look at the this fix because I'm confused. >> Kernel-DavidHotham.538 >> >> year < 20 ifTrue: [year := 2000 + year] >> was >> year < 10 ifTrue: [year := 2000 + year] >> >> both solutions look strange to me. >> >> http://code.google.com/p/pharo/issues/detail?id=1749 >> >> >> readFrom: aStream >> "Read a Date from the stream in any of the forms: >> (5 April 1982; 5-APR-82) >> (April 5, 1982) >> (4/5/82) >> (5APR82)" >> | day month year | >> aStream peek isDigit >> ifTrue: [day := Integer readFrom: aStream]. >> [aStream peek isAlphaNumeric] >> whileFalse: [aStream skip: 1]. >> aStream peek isLetter >> ifTrue: ["number/name... or name..." >> month := (String new: 10) writeStream. >> [aStream peek isLetter] >> whileTrue: [month nextPut: aStream next]. >> month := month contents. >> day isNil >> ifTrue: ["name/number..." >> [aStream peek isAlphaNumeric] >> whileFalse: [aStream skip: 1]. >> day := Integer readFrom: aStream]] >> ifFalse: ["number/number..." >> month := Month nameOfMonth: day. >> day := Integer readFrom: aStream]. >> [aStream peek isAlphaNumeric] >> whileFalse: [aStream skip: 1]. >> year := Integer readFrom: aStream. >>>> year < 20 ifTrue: [year := 2000 + year] >> ifFalse: [ year < 1900 ifTrue: [ year := 1900 + year]]. >> >> ^ self >> year: year >> month: month >> day: day >> _______________________________________________ >> Pharo-project mailing list >> [email protected] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >> >> >> _______________________________________________ >> Pharo-project mailing list >> [email protected] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > > _______________________________________________ > Pharo-project mailing list > [email protected] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
