C# 检查两个时间跨度之间的时间跨度
C# check timespan between two timespans
首先我检查了这个解决方案:
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 之间。
创建两个日期,即实际日期的 00:00,将 dalStart、dalEnd 时间跨度添加到它们并
如果(数据 > datetimeFromDalStart 和数据 < dateTimeFromDalEnd)....
我认为这符合您的要求。
如果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;
}
试一试。
首先我检查了这个解决方案:
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 之间。
创建两个日期,即实际日期的 00:00,将 dalStart、dalEnd 时间跨度添加到它们并 如果(数据 > datetimeFromDalStart 和数据 < dateTimeFromDalEnd)....
我认为这符合您的要求。
如果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;
}
试一试。