2012-02-26 74 views
-5

例如,我们有每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时,当月=二月,五月,八月,十一月。

谢谢。

+2

什么是*特定*问题? – 2012-02-26 03:40:08

+1

我认为问题是,“有人可以为我写代码吗?” – Tyson 2012-02-26 03:43:39

+0

请再次阅读问题,请 – user1230307 2012-02-26 03:43:42

回答

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之间几个月不同的是整除均匀地周期性。

+0

谢谢,但你的代码打印四月作为第一,但必须是二月(例如有问题) – user1230307 2012-02-26 04:07:33

+0

我设置checkDate为昨天。 – user1230307 2012-02-26 04:10:09

+0

@ user1230307既然他给了你一个想法,那么你可以尝试自己处理它。然后,你会理解逻辑,并能够在将来做类似的事情。 – simchona 2012-02-26 04:11:15