事件的周期性

时间:2012-02-26 03:38:03

标签: c#

例如,我们的活动每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。

感谢。

1 个答案:

答案 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,并且startsomeDate之间的月份差异可以被周期性平均分割