Use the dateItem format of the date:

Convert your date to date items.
  convert myDate to dateItems
Now add your time increments to the appropriate item
  add 17 to item 5 of myDate -- hours
  add 3 to item 4 of myDate -- days
Then convert to dateItems again
  convert myDate to dateItems
Convert back to the date format you were using

To increment by weeks just add or subtract 7 days, item 3 of the dateItems.

To increment by months just add the number of months to item 2 of the dateItems.

Your February problem will be taken care of automatically if you are incrementing by the number of months.

Use seconds only when you want to know how many days are between two dates.
put (dateInSeconds1-dateInSeconds2)/(86400) into theDaysInBetween


Using item 7 of the dateItems allows you to calculate dates such as 'the second Monday of March.'

And so on.

Michael

On Feb 26, 2005, at 4:55 AM, jbv wrote:

Hi revolutionaries,

What is the best way to make artithmetic
operations on dates ? For instance I have
a list of events stored with the date & time
of occurence, and I'd like to quickly pick
up those that took place during the last 17
hours, or the last 3 days, or the last 7 weeks
or the last 19 months...

I know this can be done with SQL but I don't
want to set up a database just for that...
The best thing I came up with is to convert each
event date into seconds, subtract the amount of
seconds of the interval of time, and then pick up
all items greater than that...
But I have the feeling that computing the interval
in seconds might get tricky when there's a february
29 in it (for instance)...

Any better idea ?
Thanks,
JB

_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution


_______________________________________________ use-revolution mailing list use-revolution@lists.runrev.com http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to