actionscript 3-如何在日期范围内选择随机日期AS3



我试图在一个日期范围内获得一个随机日期,这就是我目前所拥有的,但似乎不起作用??我哪里错了??

//Gets the date difference
     private function differenceBetweenDates(date1:Date, date2:Date):Number{
                var MS_PER_DAY:uint = 1000 * 60 * 60 * 24;
                var tempDate:Date = new Date(date2.time - date1.time);
                var difference:Number =
                    Math.abs(Math.round((tempDate.time / MS_PER_DAY)));
                return difference;          }

//获取一个随机数函数randomRange(max:Number,min:Number=0):数字{return Math.round(Math.random()*(max-min)+min);}

protected function getRandomDate:void           {
                // TODO Auto-generated method stub
                 var dat1:Date= new Date();
                 var dat2:Date = new Date(1989, 4, 16)
                 var num:Number = new Number(differenceBetweenDates(dat2,dat1));
                var random:Number= new Number(randomRange(num));
                currDate.setDate(dat2.date+random);
                getComic(formatDate(currDate));
                dat2 = new Date(1989, 4, 16)
                            }

我在您的代码中发现了几个错误。

currDate.setDate(dat2.date+random)

setDate设置月份中的日期,而不是任意的时间日期。此外,您希望使用dat2.time,而不是dat2.date

应该是

currDate.setTime(dat2.time+random)

这里有一个稍微不同的版本,你可能想试试。我删除了MS_PER_DAY计算,所以,如果你需要的话,你可能想把它添加回来,但我发现这更容易查看:

public function getRandomTimeBetweenDates(date1:Date, date2:Date):Number
{   
    return Math.round(Math.random() * (Math.abs(date2.time - date1.time)));
}
public function getRandomDate():Date {
    var dat1:Date= new Date();
    var dat2:Date = new Date(1989, 4, 16)
    dat2.setTime(dat2.time + getRandomTimeBetweenDates(dat2,dat1));
    return dat2;
}

相关内容

  • 没有找到相关文章

最新更新