Flex中的舍入日期到最近的15分钟间隔

时间:2009-09-18 10:51:57

标签: flex date rounding

我正在构建一个控件以允许我设置会议时间,我希望它用作默认值,当前时间四舍五入到最接近的15分钟间隔。因此,如果它当前是6:07,它将以6:15作为开始时间。

是否有人知道如何实现这一目标,或者是否遇到过使我走上正轨的代码片段?

2 个答案:

答案 0 :(得分:2)

试试这个

var date:Date = new Date();
var min:Number = date.minutes;
var h:Number = date.hours;
min = min + (15 - min % 15);
h += min / 60;
min = min % 60;
date.hours = h;
date.minutes = min;
trace(date.toTimeString());

答案 1 :(得分:1)

我发现Amarghosh的答案是它不是很正确。例如:它将7:01转为7:15,而不是7:00。它也不会处理日期的变化(例如舍入23:50到第二天)等等。

这将做你想要的,同时处理变化的日子,月份和年份,数学更简单:

protected function roundTimeToMinutes( date:Date, interval:int ):Date
{
    var time:Number=date.getTime();
    var roundNumerator=60000*interval; //there are 60000 milliseconds in a minute
    var newTime:Number=( Math.round( time / roundNumerator ) * roundNumerator );
    date.setTime(newTime);
    return date;
}