Hi guys,
In flex, I am trying to do date deduction and addition, but couldn't find a way to do it.
e.g.: public var dateNow:Date=new Date();
How can I get the Date 3 months earlier than dateNow?
Thanks!!!
Hi guys,
In flex, I am trying to do date deduction and addition, but couldn't find a way to do it.
e.g.: public var dateNow:Date=new Date();
How can I get the Date 3 months earlier than dateNow?
Thanks!!!
I don't believe there is built-in Date arithmetic. Even the official adobe documentation for the Date class creates date math from scratch when using it.
Take a look at the above link. The documentation creates a DateMath class with static methods to do the sort of thing you want. Given that, I'm not sure why they didn't make is a part of the standard, but that's the way it is. I'd suggest copying it from there and expanding on it.
Try the DateUtils open source library.
I use it extensively in the Flextras Calendar and it works great. I'm pretty sure there is a DateAdd method. To get a date 3 months earlier, you can just add a negative 3.
You can use the Date constructor for this. The first argument to Date's constructor takes either a year or a timestamp. You can use the Date.time
property to get the timestamp from a date object. Once you have the timestamp you can add/subtract some number of seconds from it, and then pass it to new Date(timestamp)
and you get a brand new date which represents the new timestamp.
Edit; As a commenter pointed out, time manipulation may not be the best way to go. But you can still use the Date constructor as follows:
var now:Date = new Date();
var threeMonthsAgo = new Date(now.fullYear,
now.month - 3,
now.date,
now.hour,
now.minute,
now.second,
now.millisecond);
The Date constructor is smart enough to deal with negative values, or values greater than 11.
another alternative is Peter's Dates for lazy people, I love it coming from CF http://blog.flexexamples.com/2007/08/24/date-math-for-lazy-people/