C# 检查时间是否在范围内

C# 检查时间是否在范围内,c#,datetime,timeofday,C#,Datetime,Timeofday,我正在尝试执行一项检查,输入的时间在指定的时间间隔内,但我卡住了。。。我有一个主块和另一个类来执行检查,检查的是间隔内输入的时间,但我一直得到“方法'IsBetween'不重载0个参数”当我尝试调用该方法并得到简单的布尔值true或false时,我知道解决方案可能真的很简单,但我就是想不出来…: static void Main() { var currentTime = Console.ReadLine(); DateTime now = Conver

我正在尝试执行一项检查,输入的时间在指定的时间间隔内,但我卡住了。。。我有一个主块和另一个类来执行检查,检查的是间隔内输入的时间,但我一直得到“方法'IsBetween'不重载0个参数”当我尝试调用该方法并得到简单的布尔值true或false时,我知道解决方案可能真的很简单,但我就是想不出来…:

 static void Main()
    {
        var currentTime = Console.ReadLine();
        DateTime now = Convert.ToDateTime(currentTime);
        var dateNow = DateTime.Now;
        var startTime = new DateTime(dateNow.Year, dateNow.Month, dateNow.Day, 13, 0, 0);
        var endTime = new DateTime(dateNow.Year, dateNow.Month, dateNow.Day, 3, 0, 0);
    }
这是我要检查的班级:

public static class TimeExtensions
{
    public static bool IsBetween(this DateTime now, DateTime startTime, DateTime endTime)
    {
        if (now.TimeOfDay == startTime.TimeOfDay) return true;
        if (now.TimeOfDay == endTime.TimeOfDay) return true;

        if (startTime.TimeOfDay <= endTime.TimeOfDay)
            return (now.TimeOfDay >= startTime.TimeOfDay && now.TimeOfDay <= endTime.TimeOfDay);
        else
            return !(now.TimeOfDay >= endTime.TimeOfDay && now.TimeOfDay <= startTime.TimeOfDay);
    }
}
公共静态类时间扩展
{
公共静态布尔值介于之间(此日期时间现在、日期时间开始时间、日期时间结束时间)
{
如果(now.TimeOfDay==startTime.TimeOfDay)返回true;
如果(now.TimeOfDay==endTime.TimeOfDay)返回true;

如果(startTime.TimeOfDay=startTime.TimeOfDay&&now.TimeOfDay=endTime.TimeOfDay&&now.TimeOfDay则错误提示您正在调用
IsBetween
如下:

bool b = now.IsBetween();
但您需要提供开始和结束时间:

bool b = now.IsBetween(startTime, endTime);

您尚未显示实际调用
IsBetween
函数的代码…!您需要在尝试调用
IsBetween
时提供开始和结束时间。因此
bool test=dateNow.IsBetween(开始时间,结束时间)
未编译?是否检查了名称空间等?我认为else子句中的反向检查应该使用>和<而不是>=和=startTime.TimeOfDay | | now.TimeOfDay,或者将整个if替换为
(now.TimeOfDay>=startTime.TimeOfDay^ now.TimeOfDay>endTime.TimeOfDay)
。最好为开始和结束传递一个时间跨度,而不是日期时间,这样可以指定0和24:00:00。就这样。非常感谢!