[英]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.