夜間が20.30hから6.15h(AM)に設定されているとします。これらの2つのパラメーターは、ユーザースコープの変数です。到着日と出発日が数分から合計1日を超える場合があるとします。夜間の合計時間をどのように計算しますか?
public static double CalculateTotalNightTimeHours(DateTime arrival,
DateTime departure,
int nightTimeStartHour,
int nightTimeStartMinute,
int nightTimeEndHour,
int nightTimeEndMinute)
{
//??
}
編集:私はこれが簡単なはい/いいえの答えではないかもしれないことを理解していますが、おそらく誰かがこの問題のエレガントな解決策を持っています。コメントに答えるには:私は確かに、ユーザーが編集可能な夜の開始時間と終了時間の間にある合計時間(または分)を計算したいと思います。私は訪問時間を計算しています、そして最初の日付は確かに到着パラメータです。
私がソファに持っていたコード:
DateTime nightStart = new DateTime( departure.Year, departure.Month, departure.Day,
nightTimeStartHour, nightTimeStartMinute, 0);
DateTime nightEnd = new DateTime( arrival.Year, arrival.Month, arrival.Day,
nightTimeEndHour, nightTimeEndMinute, 0);
if (arrival < nightEnd)
{
decimal totalHoursNight = (decimal)nightEnd.Subtract(arrival).TotalHours;
}
//...