如何检查时间是否是第二天

Tan*_*Tan -1 .net c#

我有一个 Windows 应用程序,用户在其中输入开始时间和结束时间,如何检查结束时间是否是第二天的时间。

example: start time           end time
          1:00:00 AM          5:00:00 AM
          5:00:00 AM          10:00:00 AM
          10:00:00 AM          5:00:00 PM
          5:00:00 PM          10:00:00 PM
          10:00:00 PM          1:00:00 AM --(next day)
          1:00:00 AM          5:00:00 AM
Run Code Online (Sandbox Code Playgroud)

我正在尝试如下所示:

private void GenerateReportWithStartTimeandEndTime(string StartTime, string EndTime, string DailyTime)
{
    DateTime tempStartTime = DateTime.ParseExact(StartTime, "HH:mm:ss tt", CultureInfo.InvariantCulture);
    DateTime tempEndTime = DateTime.ParseExact(EndTime, "HH:mm:ss tt", CultureInfo.InvariantCulture);

    DateTime midNightToday = DateTime.Today.AddDays(1);
    var StarthourDifference = (midNightToday - tempStartTime).TotalHours;
    var EndhourDifference = (midNightToday - tempEndTime).TotalHours;
    if (StarthourDifference - EndhourDifference > 0)
    {

    }
    else
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

fub*_*ubo 5

怎么样

bool IsNextDay = EndTime < StartTime;
Run Code Online (Sandbox Code Playgroud)

代码:

//case 1
TimeSpan StartTime = DateTime.ParseExact("5:00:00 PM", "h:mm:ss tt", CultureInfo.InvariantCulture).TimeOfDay;
TimeSpan EndTime = DateTime.ParseExact("10:00:00 PM", "h:mm:ss tt", CultureInfo.InvariantCulture).TimeOfDay;
bool IsNextDay = EndTime < StartTime; //false

//case 2
TimeSpan StartTime2 = DateTime.ParseExact("10:00:00 PM", "h:mm:ss tt", CultureInfo.InvariantCulture).TimeOfDay;
TimeSpan EndTime2 = DateTime.ParseExact("1:00:00 AM", "h:mm:ss tt", CultureInfo.InvariantCulture).TimeOfDay;
bool IsNextDay2 = EndTime2 < StartTime2; //true
Run Code Online (Sandbox Code Playgroud)

  • 也可能是“&lt;=”,具体取决于如果两个时间相等的话应解释为 0 小时还是 24 小时。 (3认同)