如何比较 17:00 > 00:00 的 24 小时内的时间,这是错误的

How to Compare time in 24 hour taking 17:00 > 00:00 and this is wrong

当我尝试将开始时间与 DateTime.Now.Hour 以及结束时间与 DateTime.Now.Hour 进行比较以获得当前的班次时遇到问题,所以问题是如何比较时间24 小时后。

此代码中的问题:采用 17:00 > 00:00,这是错误的

public void GetShift()
    {
        DateTime S1_Start = Convert.ToDateTime("00:00");
        string S1_HourEnd = Convert.ToDateTime("00:00").AddHours(8).ToString("HH:mm");
        DateTime S1_End = Convert.ToDateTime(S1_HourEnd);

        DateTime S2_Start = Convert.ToDateTime("08:00");
        string S2_HourEnd = Convert.ToDateTime("08:00").AddHours(8).ToString("HH:mm");
        DateTime S2_End = Convert.ToDateTime(S2_HourEnd);

        DateTime S3_Start = Convert.ToDateTime("16:00");
        string S3_HourEnd = Convert.ToDateTime("16:00").AddHours(8).ToString("HH:mm");
        DateTime S3_End = Convert.ToDateTime(S3_HourEnd);


        if (S1_Start.Hour <= DateTime.Now.Hour && S1_End.Hour > DateTime.Now.Hour)
        {
            HourStart_Shift = new TimeSpan(S1_Start.Hour, 0, 0);
            HourEnd_Shift = new TimeSpan(S1_End.Hour, 0, 0);
            Current_Shift = "Shift_1";
        }

        if (S2_Start.Hour <= DateTime.Now.Hour && S2_End.Hour > DateTime.Now.Hour)
        {
            HourStart_Shift = new TimeSpan(S2_Start.Hour, 0, 0);
            HourEnd_Shift = new TimeSpan(S2_End.Hour, 0, 0);
            Current_Shift = "Shift_2";
        }

        if (S3_Start.Hour <= DateTime.Now.Hour && S3_End.Hour > DateTime.Now.Hour)
        {
            HourStart_Shift = new TimeSpan(S3_Start.Hour, 0, 0);
            HourEnd_Shift = new TimeSpan(S3_End.Hour, 0, 0);
            Current_Shift = "Shift_3";
        }
    }

这应该是因为00:00是第二天。将 00:00 更改为 23:59