2013-08-05 16 views
2

兩個日期給出:如何檢查兩個日期之間的固定時間段的數量?

比方說,

日期DT1 = 22月2013 8:00 PM

日期DT2 = 24 2013 6:00 AM

六月鑑於這兩個日期,我想確定從凌晨1點到凌晨5點這兩個日期之間有多少段。

對於上面,有兩個部分:

6月23日凌晨1點到凌晨5點

6月24日凌晨1時至上午05時

所以答案應該是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(); 

但這只是給了差預期。

這樣做需要什麼方法?

回答

1

就像計算機科學中的其他一樣:將問題分解成一系列可以解決的小問題。

例如,在這個問題中,您可能會簡單地確定在時間範圍內是否至少有一個「段」。如果存在,您可以從整個時間跨度中移除前24小時,然後重複該過程,只要存在24小時即可移除。記得一路計數。

1

另一種方法可能是檢查

  • 上午05點,然後resutl++
  • result+= diff.getDays() - 1
+0

結果來爲1.然後result=1

  • 如果time2.getHours()後,如果time1.getHours()之前或等於凌晨1點,但它應該是2.'diff.getDays()'返回1.使用'int days = Days.daysBetween(date1,date2).getDays();'得到它。結果= 1 +(1-1)= 1.那麼爲什麼我們要從diff.getDays()中減去1呢? –

  • 相關問題