如何比较 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
当我尝试将开始时间与 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