views:

1094

answers:

4

We have an application in which the user has to enter a date who's value is no more than 30 days after the the current date (the date on which the user uses the application). This is a Flash application, therefore I need a way to add 30 days to the current date, and get the right date. Something like in JavaScript:

myDate.setDate(myDate.getDate()+30);

Or in C#:

DateTime.Now.Add(30);

Is there such a thing in ActionScript?

+1  A: 

Hi,

I'm writing the code from the top of my head, without compiling it, but I'd use getTime(). Something like:

var today : Date = new Date();
var futureDate : Date = new Date();
futureDate.setTime(today.getTime() + (1000 * 60 * 60 * 24 * 30));

1000 * 60 * 60 * 24 * 30 = milliseconds * seconds * minutes * hours * days

Makes sense?

Zárate
+1  A: 

My TimeSpan class might prove useful here (it's a port of the .NET System.TimeSpan):

var now : Date = new Date();
var threeDaysTime : Date = TimeSpan.fromDays(3).add(now);
Richard Szalay
+2  A: 

I suggest that you look here: http://stackoverflow.com/questions/744057/how-can-you-save-time-by-using-the-built-in-date-class/744068#744068.

It should be something like this:

var date:Date = new Date();
date.setDate(date.date + 30);
Lillemanden
date.date - Properties are case sensitive.
Virusescu
Correct, I have updated the code.I never liked the actionscript naming convention ;)
Lillemanden
+3  A: 

While the other answers will work im sure, it is as easy as doing:

var dte:Date = new Date();
dte.date += 30; 
//the date property is the day of the month, so on Sept. 15 2009 it will be 15

This will even increment the month if necessary and year as well. You can do this with the month and year properties as well.

Ryan Guill
That's great! I just want to emphasize that this works only in AS3
Lea Cohen
That is true. Also remember that the month property is 0 based. So January is month 0 and December is month 11.
Ryan Guill