I like challenges :)
The following function adds monthNums months, and gives you the last day of that month, if the original day number was more then the target month actually has days. Works on 2.8 (does NOT work correctly for 2.8.1 rc3 due to bug 4915)

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


--

official ChatRev page:
http://chatrev.bjoernke.com

Chat with other RunRev developers:
go stack URL "http://homepage.mac.com/bvg/chatrev1.3.rev";

_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to