事件的周期性

本文关键字:周期性 事件 | 更新日期: 2023-09-27 18:26:00

例如,我们每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;

当当前月份=二月、五月、八月、十一月时,方法必须返回true。

谢谢。

事件的周期性

代码非常简单:

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,并且startsomeDate之间的月差可以被周期整除。