我正在尝试查找给定的日期是否介于一组时间段之间 我有一个带有开始和结束日期的期间类,以及一个检查它是否在期间集合中的日期。这是示例代码。
public class Period
{
public Guid PeriodId { get; set; }
public DateTime Start { get; set; }
public DateTime End { get; set; }
}
...
// main class
public Collection<Period> Periods = Collection of Periods ;
public DateTime TimeToCheck = somedatevalue;
public bool IsTimeInGivenPeriods(TimeToCheck, Periods)
{
if(TimeToCheck is in Periods)
return true;
else
retrun false;
}
答案 0 :(得分:2)
您可以将其定义为extension method:
setApiKey
现在您将能够执行此操作:
public static void IsTimeInGivenPeriods<IEnumerable<Period>>(this IEnumerable<Period> Periods, DateTime TimeToCheck )
{
return Periods?.Any(p=> p.Start <= TimeToCheck && p.End < TimeToCheck ) ?? false;
}
答案 1 :(得分:0)
您可以检查日期是否大于或等于任何期间的开始日期,并且小于或等于该期间的结束日期:
{ read -r header; echo "$header"; sort -g -k 1.2,1; } < filename
如果您需要扩展方法,则可以像下面这样实现:
public static bool IsTimeInGivenPeriods(DateTime timeToCheck, IEnumerable<Period> periods)
{
return periods?.Any(p => timeToCheck >= p.Start && timeToCheck <= p.End) ?? false;
}
然后像这样使用它:
public static class Extensions
{
public static bool ContainsDate(this IEnumerable<Period> periods, DateTime timeToCheck)
{
return periods?.Any(p => timeToCheck >= p.Start && timeToCheck <= p.End) ?? false;
}
}