Getting there :) But still fails the unit tests - resulting in:
1 Failed adding 1 to 2002,1,31,1,0,0,5. Resulted in 1 2 Failed adding 2 to 2002,1,31,1,0,0,5. Resulted in 2 4 5 6 7 8 9 10 10 Failed adding 10 to 2002,1,31,1,0,0,5. Resulted in 10 Which looks like is kind of one out of the loop - NB I like your evaluation of leap years - is that all there is to it? Taking a look at the code now to see where it is going wrong... on mouseUp -- unit test put "2002,1,31,1,0,0,5" into abbeyStartDate put 1 into lastMonth repeat with statementNumber = 1 to 10 put item 2 of date_AddMonth(statementNumber, abbeyStartDate) into someMonth put someMonth if statementNumber mod 12 is not (someMonth - 1) then put merge("Failed adding [[statementNumber]] to [[abbeyStartDate]]. Resulted in [[someMonth]]") end if end repeat end mouseUp function date_AddMonth monthNum, startDate convert startDate to dateItems # does not work if startDate is a system date put item 3 of startDate into theDay put 1 into item 3 of startDate add monthNum to item 2 of startDate convert startDate from dateItems to dateItems put item 2 of startDate into theMonth put item 1 of startDate into theYear put getMaxDays(theMonth, theYear) into maxDay if theDay > maxDay then put maxDay into theDay end if put theDay into item 3 of startDate --convert startDate from dateItems to <favorite date format> return startDate end date_AddMonth function getMaxDays theMonth, theYear put "1,January,3,March,5,May,7,July,8,August,10,October,12,December" into Months31 put "4,April,6,June,9,September,11,November" into Months30 if theMonth is among the items of Months31 then put 31 into HowManyDays else if theMonth is among the items of Months30 then put 30 into HowManyDays else --February if (theYear mod 400 = 0) or (theYear mod 100 <> 0) and (theYear mod 4 = 0) then put 29 into HowManyDays -- leap year else put 28 into HowManyDays end if end if return HowManyDays end getMaxDays _______________________________________________ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution