从现在起六个月后,Flex加减

时间:2011-11-28 04:36:10

标签: flex

以下是我正在尝试的代码

        public static const millisecondsPerDay:int = 1000 * 60 * 60 * 24
        var sixMonthsInMilis:int = 182 * millisecondsPerDay;
        var sixMonthsInTheFuture:Date = new Date();
        sixMonthsInTheFuture.setTime(sixMonthsInTheFuture.getTime() + sixMonthsInMilis );
        var sixMonthsInThePast:Date = new Date();
        sixMonthsInThePast.setTime(sixMonthsInThePast.getTime() - sixMonthsInMilis);

过去的意思是将来的几天,过去的几天。与我之后的6个月相差甚远

任何想法?

2 个答案:

答案 0 :(得分:2)

var today:Date = new Date();
today.setMonth(today.getMonth() + 6);
var sixMonthsInTheFuture:Date = today;
var anotherToday:Date = new Date();
anotherToday.setMonth(anotherToday.getMonth() - 6);
var sixMonthsInThePast:Date = anotherToday;

trace(sixMonthsInTheFuture);
trace(sixMonthsInThePast);

对我来说,这会返回

  

Mon May 28 14:03:32 GMT + 0530 2012
  5月28日星期六14:03:32 GMT + 0530 2011

这看起来很公平,对吧?

答案 1 :(得分:0)

嗯...... var

var now:Date = new Date();
now.setMonth(now.getMonth() + 6);
var sixMonthsInTheFuture:Date = now;
var now:Date = new Date();
now.setMonth(now.getMonth() - 6);
var sixMonthsInThePast:Date = now;

不确定这是否会100%有效,因为我不确定Flex是否会出现日期溢出,(比如,9月+ 6会是明年的1月吗?),有些语言会这样做。试一试

显然setMonth还需要第二个参数,Day,即1到31之间的日期,所以更多的ifs来检查日期,如果它超过新月的最大日等,但这是一般的想法