0

我正在使用 Java 中的日期间隔,并且我有一个初始日期(比如说 04-04-2013 11:00:00)、几个小时(例如 12:00)和一些间隔(如周日 09:00 - 18:00,周一 10:00 - 13:00,14:00 - 17:00)可以由用户指定,这意味着它可以是他想要的任意多个间隔,ir一天或多天。

现在,我需要做的是在这些间隔上分割那个小时数,直到它结束,然后在初始日期添加它。

举些例子:

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个小时...)

有一种简单的方法可以做到这一点吗?任何具有这些功能或类似功能的库?谢谢

4

1 回答 1

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

遍历不同的间隔,计算一个间隔的长度,然后从总剩余时间中减去它。如果间隔长于剩余时间,只需通过将剩余量添加到该间隔的开始时间来计算结束时间。

于 2013-04-01T00:07:15.790 回答