Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to do Flex date deduction and addition

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!!!

like image 529
leon Avatar asked Jun 23 '10 23:06

leon


2 Answers

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.

like image 99
echo Avatar answered Oct 22 '22 19:10

echo


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.

http://flexdateutils.riaforge.org/

like image 3
JeffryHouser Avatar answered Oct 22 '22 18:10

JeffryHouser