我正在使用Java中的日期间隔,我有一个初始日期(比如说04-04-2013 11:00:00),以及一些小时(例如,12:00),一些间隔(如星期日09:00-18:00,星期一10:00-13:00,14:00-17:00)可以被用户识别,这意味着它可以和他一样多的间隔想要,一天或多天。
现在,我需要做的是在这些时间间隔内分割这个小时数,直到它结束,然后在初始日期添加它。
例如:
04-04-2013,12小时分开,第二天间隔时间为09:00 - 18:00(9小时),下一天是10:00 - 15:00(5小时) 。在这种情况下,12小时将在第5天的9小时和第6天的3小时分裂。因此,最终日期将是04-06-2013 13:00(从第6天开始于10:00,并且我还需要3个小时......)
有一种简单的方法可以做到这一点吗?任何具有这些功能的lib或类似的东西?感谢
答案 0 :(得分:0)
这样的东西?:
Date[] intervalStart = <<specify all the starts of all the intervals>>;
Date[] intervalEnd = <<specify all the ends of all the intervals>>;
long totalTimeRemaining = <<hours>> * 60 * 60 *1000; //milliseconds
for (int i=0; i<intervalStart .length; i++) {
long intervalLen = intervalEnd[i].getTime()- intervalStart[i].getTime();
if (intervalLen > totalTimeRemaining) {
return new Date(intervalStart[i].getTime()+totalTimeRemaining);
}
totalTimeRemaining = totalTimeRemaining - intervalLen;
}
遍历不同的间隔,计算间隔的长度,并从总剩余时间中减去它。如果间隔时间比剩余时间长,只需通过将剩余金额添加到该间隔的开始时间来计算结束时间。