我在统计页面上工作,显示了12个月的滚动数字。我创建了一个数组来保存月份和一个for循环来填充数组,从当前月份开始作为数组中的第一个元素
select a.cId,a.pId,a.uId,b.catId,b.catName,b.tId,b.tName,b.tEvent from T2 a right outer join T1 b
on a.cId = b.cId and a.pId =b.pId ;
跟踪产生了这个:
staMonth:6 staMonth:7 staMonth:8 staMonth:9 staMonth:10 staMonth:11 staMonth:0 staMonth:2 staMonth:3 staMonth:4 staMonth:5 staMonth:6 staMonth:7
我不得不做双重服务..第1个月在哪里?那是我吗?我是完全愚蠢的吗?
当我修改for循环时:
var myDate:Date = new Date();
for(var mn:uint=0; mn<12;mn++){
myDate.setMonth(myDate.getMonth()+1);
trace("statMonth +: "+ myDate.month);
}
它追踪: staMonth:6 staMonth:7 staMonth:8 staMonth:9 staMonth:10 staMonth:11 staMonth:0 staMonth:2 staMonth:3 staMonth:4 staMonth:5 staMonth:6 staMonth:7 staMonth:8 staMonth:9 staMonth:10 staMonth:11 staMonth:0 staMonth:1 staMonth:2
答案 0 :(得分:3)
因为二月只有28天,有时候是29天。你继续加1个月到当前日期,即6月30日。经过7个周期后,日期将是1月30日。增加一个月可能会导致3月1日。
答案 1 :(得分:1)
我修改了您的代码以包含date
属性。
var myDate:Date = new Date();
for(var mn:uint=0; mn<20;mn++)
{
myDate.setMonth(myDate.getMonth()+1);
Wonderfl.log("statMonth: "+ myDate.month + " " + myDate.date);
}
正如您在下面的结果中看到的那样,错过的二月(请参阅Ruud Lender's answer)会导致date
值的偏移,在第二遍(明年)中会导致二月显示起来。
statMonth: 6 30
statMonth: 7 30
statMonth: 8 30
statMonth: 9 30
statMonth: 10 30
statMonth: 11 30
statMonth: 0 30
statMonth: 2 2
statMonth: 3 2
statMonth: 4 2
statMonth: 5 2
statMonth: 6 2
statMonth: 7 2
statMonth: 8 2
statMonth: 9 2
statMonth: 10 2
statMonth: 11 2
statMonth: 0 2
statMonth: 1 2
statMonth: 2 2