我正在构建一个控件以允许我设置会议时间,并且我希望它用作默认值,当前时间四舍五入到最接近的 15 分钟间隔。因此,如果当前是 6:07,它将读取 6:15 作为开始时间。
有谁知道这可能是如何完成的,或者是否遇到过让我走上正轨的代码片段?
我正在构建一个控件以允许我设置会议时间,并且我希望它用作默认值,当前时间四舍五入到最接近的 15 分钟间隔。因此,如果当前是 6:07,它将读取 6:15 作为开始时间。
有谁知道这可能是如何完成的,或者是否遇到过让我走上正轨的代码片段?
尝试这个
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());
我发现 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;
}