繁体   English   中英

C#检查两个时间跨度之间的时间跨度

[英]C# check timespan between two timespans

首先,我检查了这个解决方案:

查找当前时间是否落在时间范围内

并试图比较那种解决方案的时间跨度

public Boolean CalculateDalUren(DateTime datum, TimeSpan? dalStart, TimeSpan? dalEnd)
    {
        Boolean isDal = false;
        TimeSpan timeBetween = datum.TimeOfDay;

        if ((timeBetween >= dalStart))&&(timeBetween < dalEnd)
            {
                isDal = true;
            }
        }
        return isDal;
    }

请注意, dalStart是21:00或23:00, dalEnd几乎总是07:00。 我将DateTime转换为Timespan

现在,如果Timespan例如是23:00,那么时间比dalStart更大或相同,但是因为(这是一个假设)它后来dalEnd它仍然会看到if语句为false。 反之,当它的02:00时。 然后它不迟于dalStart但早于dalEnd

我想这是因为我的时间跨度为2天。 从一天的21:00到第二天的07:00。 这有解决方法吗? 所以我可以检查第二天早上21:00到07:00之间的时间。

我认为这符合您的要求。

如果dalEnd小于dalStart,它应该是第二天的TimeSpan。

    public Boolean CalculateDalUren(DateTime datum, TimeSpan? dalStart, TimeSpan? dalEnd)
    {
        Boolean isDal = false;
        DateTime StartDate = DateTime.Today; 
        DateTime EndDate = DateTime.Today;

        //Check whether the dalEnd is lesser than dalStart
        if (dalStart >= dalEnd)
        {
            //Increase the date if dalEnd is timespan of the Nextday 
            EndDate = EndDate.AddDays(1); 
        }

        //Assign the dalStart and dalEnd to the Dates
        StartDate = StartDate.Date + dalStart.Value; 
        EndDate = EndDate.Date + dalEnd.Value;

        if ((datum >= StartDate) && (datum <= EndDate))
        {
            isDal = true;
        }
        return isDal;
    }

试试吧。

创建两个日期,即实际日期的00:00,将dalStart,dalEnd timespan添加到它们以及if(datum> datetimeFromDalStart和datum <dateTimeFromDalEnd)....

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM