我正在构建一个控件以允许我设置会议时间,我希望它用作默认值,当前时间四舍五入到最接近的15分钟间隔。因此,如果它当前是6:07,它将以6:15作为开始时间。
是否有人知道如何实现这一目标,或者是否遇到过使我走上正轨的代码片段?
答案 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;
}