2009-11-06 3 views
4

Мне нужно рассчитать количество ночей (проживание в отеле) со времени заезда и отъезда.Как рассчитать количество ночей в диапазоне дат?

Каков наилучший способ сделать это?

то есть: Если у меня есть

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

Doing (Checkout - Checkin).Days дал бы мне 1 ночь вместо 2

Я думал о добавлении простой if проверить часы (если Checkin времени больше чем время проверки) и добавить недостающую ночь, но, может быть, есть лучший «алгоритм»

+0

У вас также есть поздние прибытия? Что делать, если человек проведет проверку после полуночи? Покойный приезд, который имеет однодневное пребывание, все равно оставит то же утро, но технически все еще остался «ночью». –

+0

Не имеет значения, когда он приехал, это письмо с подтверждением, когда он делает бронирование – juan

ответ

19

DateTime имеет свойство, которое возвращает Date, которая является DateTime в полночь. Вы можете использовать эту часть, чтобы получать ночи, так как все части дня будут отображаться в одно и то же время в день:

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

Спасибо, я думаю, мне нужно больше кофе =) – juan

+0

+1 элегантное решение :) – James

Смежные вопросы