Take that COBOL (se supone que COBOL iba a ser tan simple porque hasta las secretarias podrĂan entenderlo, en este caso es como si Smalltalk entendiera todo lo que dijeras....)
On Tue, Aug 26, 2008 at 9:44 PM, German Morales <[EMAIL PROTECTED]>wrote: > Fantastico. Tuve la oportunidad de usar la version anterior (Squeak) y ya > me parecia excelente, lo que trae esta version ya es como mucho ;-) > > German > > 2008/8/26 Maximiliano Taborda <[EMAIL PROTECTED]> > > >> Hola gente, les copio abajo el mail que envie a las listas de squeak y >> de visualworks... intenta estar en ingles, y creo que se entiende... >> sino, chiflen y lo intento escribir en argentino ;-) >> >> Saludos. >> Maximiliano. >> >> Hi. >> >> We uploaded to SqueakSource (for Sqeuak) and to the Cincom Public >> Repository (for Visualworks) a new release of the project called >> "Chalten" (2.0) that is our implementation of the Time Domain (not >> only of the Gregorian Calendar now). >> >> This model was born as a representation of the Gregorian Calendar, >> and, in this last version, the model support the Gregorian, Julian, >> Islamic an Hebrew Calendars. >> Many refactorings was done from the original model to get this last >> version wich reifyes many concepts of the Time Domain that >> Smalltalk-80 does not; for example: day, day of month, month of year, >> month, year, calendars, time zones, filters over the timeline, etc.. >> >> The main objective of this model is to easily, and in a "SDL way", >> solve problems of the Time Domain that are not easy (or impossible) to >> do with the Smalltalk-80 abstractions. >> t provides also some concepts that are useful for financial >> application, among others, like relative dates and time line filters. >> >> This model also uses the units models (Aconcagua). Because it uses the >> units model, there are some concepts that are not useful anymore, like >> Duration, because a Duration is a Measure of time. >> The model covers many concepts of the Time Domain, but lacks of some >> abstractions; for example, the representation of the leap second. >> >> It comes with more than 1600 tests (all green). >> >> Here are some examples: >> >> "Create some time entities" >> August twentieth, 2008 --> Creates an instance of >> the gregorian Date for 20/08/2008 >> August twentieth --> Creates an instance of >> the gregorian DayOfMonth for 20/08 >> August, 2008 --> Creates an instance of >> the gregorian MonthOfYear for August of 2008 >> >> "But, not only gregorian entities" >> Shaban seventeenth, 1429 --> Creates an instance of >> the islamic Date for 17/08/1429 >> Shaban seventeenth --> Creates an instance of >> the islamic DayOfMonth for 17/08 >> Shaban, 1429 --> Creates an instance of >> the islamic MonthOfYear for Shaban of 1429 >> >> JulianAugust seventh, 2008 --> Creates an instance of >> the julian Date for 07/08/2008 >> JulianAugust seventh --> Creates an instance of >> the julian DayOfMonth for 07/08 >> JulianAugust, 2008 --> Creates an instance of >> the julian MonthOfYear for August of 2008 >> >> Av nineteenth, 5768 --> Creates an instance of >> the hebrew Date for 19/05/2008 >> Av nineteenth --> Creates an instance of >> the hebrew DayOfMonth for 19/05 >> Av, 5768 --> Creates an instance of >> the hebrew MonthOfYear for Av of 5768 >> >> "Converting dates between diferents calendars" >> (August twentieth, 2008) asIslamic --> Return Sha'ban 17, >> 1429 >> (August twentieth, 2008) asHebrew --> Return Av 19, 5768 >> (August twentieth, 2008) asJulian --> August 7, 2008 >> (julian) >> >> (Shaban seventeenth, 1429) asHebrew --> Return Av 19, 5768 >> (JulianAugust seventh, 2008) asIslamic --> Return Sha'ban 17, >> 1429 >> (Av nineteenth, 5768) asGregorian --> August 20, 2008 >> (gregorian) >> >> "Measuring distances" >> August twentieth, 2008 distanceTo: December thirtieth, 2008 >> --> Return an instance of Measure <132 days> >> Shaban seventeenth, 1429 distanceTo: Muharram second, 1430 >> --> Return an instance of Measure <132 days> >> Av nineteenth, 5768 distanceTo: Tevet third, 5769 >> --> Return an instance of Measure <132 days> >> >> "Also, measuring distance expressed in diferents way (calendars)" >> August twentieth, 2008 distanceTo: Tevet third, 5769 >> --> Return an instance of Measure <132 days> >> Shaban seventeenth, 1429 distanceTo: December thirtieth, 2008 >> --> Return an instance of Measure <132 days> >> Av nineteenth, 5768 distanceTo: Muharram second, 1430 >> --> Return an instance of Measure <132 days> >> >> "Collect some entities" >> (ChaltenYear number: 2008 calendar: GregorianCalendar) months >> collect: [:monthOfYear | monthOfYear lastDate] --> >> Returns all >> the last dates of the 2008 months. >> (ChaltenYear number: 2008 calendar: GregorianCalendar) dates >> select: >> [:date | date is: Monday] --> Returns all Mondays >> of 2008 >> (ChaltenYear number: 5768 calendar: HebrewCalendar) dates select: >> [:date | date is: YomShabbat] --> Returns all yom >> shabbats of 5768 >> >> "Let's create a filter for all dates..." >> nonWorkingDays := TimeLineFilter named: 'Non Working Days' >> >> "Now, we want Saturdays to be on that filter" >> nonWorkingDays addDayRule: Saturday >> >> "Now we want Sundays from January 1st of year 1000 to the end of time..." >> nonWorkingDays >> addRule: (nonWorkingDays dayRule: Sunday) >> from: (January first, 1000) >> to: TheEndOfTime >> >> "Now we want all July 9th since 1816 because is the Independence Day >> in Argentina". >> nonWorkingDays >> addRule: (nonWorkingDays dayOfMonthRule: July ninth) >> from: (July ninth, 1816) >> to: TheEndOfTime >> >> "Testing some dates..." >> nonWorkingDays includes: (July ninth, 2008) --> Returns true >> nonWorkingDays includes: (July eighth, 2008) --> Returns >> false >> nonWorkingDays includes: (July twelfth, 2008) --> Returns >> true, it is Saturday >> >> "But, how about to filter some like the hebrew new year day" >> nonWorkingDays addDayOfMonthRule: Tishri first >> nonWorkingDays includes: (Tishri first, 5769) --> >> Return true, it is the next hebrew new year >> nonWorkingDays includes: (September thirtieth, 2008) --> >> Return true, it is the next hebrew new year (in gregorian) >> >> "21/08/2008 is a Thursday" >> timespan := TimeSpan from: (August twentyfirst, 2008) duration: >> (48 * TimeUnits hour) >> settleDate := RelativeDate timespan: timespan using: >> nonWorkingDays negated >> >> nonWorkingDays includes: (August twentyfifth, 2008) --> >> Returns false because 25/08/2008, a Monday, is a working day >> settleDate absoluteDate --> >> Returns 25/08/2008 >> >> "Now a new non working day is added to the filter" >> nonWorkingDays addDateRule: (August twentyfifth, 2008) >> >> nonWorkingDays includes: (August twentyfifth, 2008) --> >> Return true. >> "Now 25/08/2008, is a not working day" >> settleDate absoluteDate --> Now >> it returns 26/08/2008 because >> the filter has changed >> >> "Working with time zones" >> buenosAiresDateTime := TimeZonedDateTime >> dateTime: (DateTime >> date: August twentieth, 2008 >> timeOfDay: (TimeOfDay hours: 19 minutes: 35)) >> zone: TimeZones buenosAires >> >> greenwichDateTime := TimeZonedDateTime >> dateTime: (DateTime >> date: August twentieth, 2008 >> timeOfDay: (TimeOfDay hours: 22 minutes: 35)) >> zone: TimeZones greenwich >> >> buenosAiresDateTime = greenwichDateTime --> >> Return true, >> it is the same instant but measure in diferent zone >> buenosAiresDateTime distanceTo: greenwichDateTime --> >> Return a measure <0 days>, because it is the same instant >> >> buenosAiresDateTime := buenosAiresDateTime next: (TimeUnits hour * >> 3) >> >> buenosAiresDateTime = greenwichDateTime --> >> Return false, >> the hour is the same but the zone is different >> (buenosAiresDateTime distanceTo: greenwichDateTime) >> convertTo: TimeUnits hour --> >> Return a measure <-3 hours>, >> just the offset between zones >> >> >> >> Regards.- >> Maximiliano >> >> >> > > > > -- Saludos cordiales, Guillermo Schwarz Sun Certified Enterprise Architect --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] http://www.clubSmalltalk.org -~----------~----~----~----~------~----~------~--~---
