2013-03-31 61 views
0

我正在使用Java的日期间隔,并且我有一个初始日期(让我们说04-04-2013 11:00:00)和一个小时数(例如12:00)以及可以由用户指定的一些时间间隔(如星期日09:00 - 18:00,星期一10:00 - 13:00,14:00 - 17:00),这意味着什么它可以像他想要的一样多的时间间隔,一天或多天。间隔和总和之间的小时数的分段数

现在,我需要做的是将这些时间间隔分开,直到它结束,并将其添加到最初的日期。

对于实施例:

2013年4月4日,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个小时......)

有一个简单的方法来做到这一点?任何具有这些功能的库或类似的东西?感谢

+0

你试过做什么? – knowbody

+0

我没有得到它:(... – DRastislav

回答

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

步行,计算间隔的长度,并从总的剩余时间中减去它。如果间隔长于剩余时间,则只需通过将剩余量添加到该间隔的开始时间来计算结束时间。

相关问题