例如,我们的活动每3个月举行一次。事件有DateStart,DataEnd和Periodicity。
如果事件将在特定日期发生,请帮助我编写返回true / false的方法。
public bool MonthPeriodicityChecker (DateTime start, DateTime end, DateTime dateCheck, int periodicity)
{
}
例如,记录有:
start = 02/23/2012 22:00:00;
end = 12/31/2012 23:30:00;
periodicity = 3;
当前月份= 2月,5月,8月,11月时,方法必须返回true。
感谢。
答案 0 :(得分:3)
代码非常简单:
var someDate = DateTime.Now; // could be any date set some other way
if(someDate > end) return false;
var checkDate = start;
while(checkDate < end)
{
if(checkDate.Month == someDate.Month && checkDate.Year == someDate.Year)
return true;
checkDate = checkDate.AddMonths(periodicity);
}
return false;
您所做的只是确保someDate
没有超过end
,并且start
和someDate
之间的月份差异可以被周期性平均分割