间隔和总和之间的分组小时数

时间:2013-03-31 23:32:59

标签: java date intervals

我正在使用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或类似的东西?感谢

1 个答案:

答案 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;
}

遍历不同的间隔,计算间隔的长度,并从总剩余时间中减去它。如果间隔时间比剩余时间长,只需通过将剩余金额添加到该间隔的开始时间来计算结束时间。