在 C# 中检查时间是否介于两个时间值之间

本文关键字:时间 于两个 之间 是否 检查 | 更新日期: 2023-09-27 18:30:58

我的要求是我想检查Current Time是否介于两个Specified Times

场景 1:

TimeNow: 02:00:00(Tommorow)  
TimeSpan To Check 4am To 3am(next day)

场景 2:

TimeNow: 06:00:00  
TimeSpan To Check 4am To 3am(next day)

我想要 C# 中的上述代码。我没有得到这样做的逻辑。

在 C# 中检查时间是否介于两个时间值之间

假设你的意思是有两个时间,开始和结束,它们可能发生在午夜的两侧,但它们之间的间隔总是小于 24 小时,你会想要测试(在伪代码中):-

 if (start < end) return start < desired AND desired < end
 else return desired < end OR start < desired
即,如果间隔

完全在一天内,则测试以查看它是否在该间隔内,否则如果它包装在一天结束时测试以查看它是否在任一片段中。

此方法提供当前时间是否大于或等于开始时间如果当前时间小于或等于结束时间

static bool Between(DateTime startTime, DateTime endTime)
{
    var currentTime = DateTime.Now;
    if (currentTime >= startTime && currentTime <= endTime)
        return true;
    return false;
}
static bool Between(TimeSpan startTime, TimeSpan endTime)
{
    DateTime dt1 = new DateTime(startTime.Ticks);
    DateTime dt2 = new DateTime(endTime.Ticks);
        return Between(dt1, dt2);
}