gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 23:12:13 24 4
gpt4 key购买 nike

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

Find if current time falls in a time range

并尝试比较类似该解决方案的时间跨度

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

现在,如果时间跨度例如是 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;
}

尝试一下。

关于C# 检查两个时间跨度之间的时间跨度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38741050/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com