开发者

How to select random date in a date range AS3

I'm trying to get a random date in a date range and this is what i have so far but it doesnt seem to be working ?? Where I'm I Going wrong ??

//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;          }

// gets a random number function randomRange(max:Number, min:Number = 0):Number { 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+r开发者_StackOverflow社区andom);
                getComic(formatDate(currDate));
                dat2 = new Date(1989, 4, 16)
                            }


I found a couple errors in your code.

currDate.setDate(dat2.date+random)

setDate sets the date in the month, not an arbitrary date in time. Also, you want to use dat2.time, not dat2.date.

Should be

currDate.setTime(dat2.time+random)

Here's a slightly different version you might want to try out. I removed the MS_PER_DAY computation, so, you may want to add that back in if you need it, but I found this easier to look at:

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;
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜