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
-~----------~----~----~----~------~----~------~--~---

Responder a