2009-11-06 133 views
4

我需要計算入住和結帳日期的夜晚數量(入住酒店)。如何計算日期範圍內有多少晚上?

這樣做的最佳方法是什麼?

即:如果我有

Checkin: 12/11/2009 15:00 hs 
Checkout: 14/11/2009 12:00 hs 

(Checkout - Checkin).Days會給我一晚,而不是2

我想添加一個簡單的if檢查小時(如果簽入時間是更大的比結算時間),並添加失蹤的夜晚,但也許有一個更好的「算法」

+0

您是否也考慮過晚到?如果一個人在午夜之後入住,該怎麼辦?有一天入住的遲到的人仍然會在同一天早上離開,但在技術上仍然是一個「晚上」。 – 2009-11-06 14:43:41

+0

他到達時無所謂,當他預訂時用於確認郵件 – juan 2009-11-06 14:44:37

回答

19

DateTime有一個屬性,返回日期部分,這是DateTime在午夜。您可以使用此部分來獲取夜間全天的所有時間:

(Checkout.Date - Checkin.Date).Days 
+0

謝謝,我想我需要更多咖啡=) – juan 2009-11-06 14:46:44

+0

+1優雅的解決方案:) – James 2009-11-06 15:00:21