Does anyone know exactly what the convert is doing with the times? I modified Kens code so it also returns the best guess date as well as working out the month and year - that is if there is no exact match it return s the last day of that month....
And the Unit test returns this: Thu, 28 Feb 2002 01:00:00 +0000 Sun, 31 Mar 2002 02:00:00 +0000 Tue, 30 Apr 2002 02:00:00 +0000 Fri, 31 May 2002 02:00:00 +0000 Sun, 30 Jun 2002 02:00:00 +0000 Wed, 31 Jul 2002 02:00:00 +0000 Sat, 31 Aug 2002 02:00:00 +0000 Mon, 30 Sep 2002 02:00:00 +0000 Thu, 31 Oct 2002 01:00:00 +0000 Sat, 30 Nov 2002 01:00:00 +0000 Wed, 31 Dec 2003 01:00:00 +0000 Fri, 31 Jan 2003 01:00:00 +0000 Fri, 28 Feb 2003 01:00:00 +0000 Mon, 31 Mar 2003 02:00:00 +0000 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 Which passes - as each month is incremental, as are the month numbers. But - why do the times change from October to February. Note I added the 2am line to the script to ensure convert does not subtract the odd day now and then... Here is the modified code: on mouseUp put "2002,1,31,1,0,0,5" into startDate put 1 into lastMonth put lastMonth into endMonths repeat with statementNumber = 1 to 14 set the cursor to busy date_AddMonth statementNumber, startDate, endMonth, endYear put the result put space & endMonth after endMonths if statementNumber mod 12 is not (endMonth - 1) then put merge("Failed adding [[statementNumber]] to [[abbeyStartDate]]. Resulted in [[someMonth]]") end if end repeat put endMonths end mouseUp on date_AddMonth monthsToAdd, startDate, @endMonth, @endYear -- thanks to Ken Ray <[EMAIL PROTECTED]> ! put startDate into someDate convert someDate to dateItems put item 1 of someDate into tYear put item 2 of someDate into tMonth put (monthsToAdd+tMonth) mod 12 into endMonth if endMonth = 0 then put 12 into endMonth put ((monthsToAdd+tMonth) div 12) + tYear into endYear put endYear into item 1 of someDate put endMonth into item 2 of someDate put date_MaxDaysInMonth(endMonth, endYear) into item 3 of someDate put 2 into item 4 of someDate # seems to be required !!! convert someDate to internet date return someDate end date_AddMonth function date_MaxDaysInMonth theMonth, theYear -- thanks to Björnke von Gierke <[EMAIL PROTECTED]> ! 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 date_MaxDaysInMonth _______________________________________________ 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