【问题标题】:Split number of hours between intervals and sum在间隔和总和之间拆分小时数
【发布时间】:2013-03-31 23:32:59
【问题描述】:

我正在使用 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小时) .在这种情况下,第 5 天的 9 小时将拆分 12 小时,第 6 天的 3 小时以上。因此,最终日期将是 04-06-2013 13:00(因为第 6 天从 10:00 开始,并且我还需要3个小时...)

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

【问题讨论】:

  • 你尝试做什么?
  • 我没明白 :( ...

标签: java date intervals


【解决方案1】:

像这样?:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-26
    • 2016-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多