假设夜间时间设置为 20.30h 到 6.15h(AM)。这 2 个参数是用户范围的变量。假设您有一个到达日期和一个离开日期,可能从几分钟到一整天不等。你如何计算夜间的总小时数?
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;
}
//...