如何检查两个日期之间固定时间段的数量?

时间:2013-08-05 10:51:28

标签: java android date time jodatime

给出了两个日期:

让我们说,

  

日期dt1 = 2013年6月22日晚上8:00

     

日期dt2 = 2013年6月24日上午6:00

鉴于这两个日期,我想确定凌晨1点到凌晨5点的段数在这两个日期之间。

对于上述内容,有两个部分:

  

6月23日凌晨1点至凌晨5点

     

6月24日凌晨1点至凌晨5点

所以答案应该是2。

我可以在两次之间得到区别,

var time1 = new Date(dt1).getTime();
  var time2 = new Date(dt2).getTime();

  var diff = new Date(time1 - time2);

小时数,分钟数和秒数

  var hours = diff.getHours();
  var minutes = diff.getMinutes();
  var seconds = diff.getMinutes();

但这只会产生预期的差异。

需要采取什么方法?

2 个答案:

答案 0 :(得分:1)

与计算机科学中的其他内容一样:将问题分解为一系列您能够解决的小问题。

例如,在此问题中,您可能只是确定时间跨度中是否至少有一个“细分”。如果有,您可以删除整个时间段的前24小时,然后重复此过程,只要有24小时要删除。记得要沿途计算。

答案 1 :(得分:1)

另一种方法可能是检查

  • 如果time1.getHours()之前或之前等于凌晨1点,那么result=1
  • 如果time2.getHours()在凌晨5点之后再resutl++
  • result+= diff.getDays() - 1