我有重复发生的任务,我正在构建一些会自动为我重新创建它们的东西。
我有这个枚举:
public enum Periods {
Day = 0, //every day
Week = 1, //every week...
BiWeek = 2, //every 2nd week
Month = 3,
BiMonth = 4,
Year = 5
};
我需要能够在这些间隔内重新创建。
因此,我可能会在每个月的 29 日再次发生一些事情。如果 29 日不存在,比如 2 月,那么它应该跳到下一个最好的时间,即 3 月 1 日。
是否有算法可以做到这一点,可能使用 DateTime 对象?
我需要前:
DateTime GetNextOccurrence(DateTime initialDate, DateTime lastOccurrence, Periods p)
{
if(p == Day)
return lastOccurance.addDays(1);
else if (p == Month)
{
add 1 month to last occurance month then start at day 1 of the month and keep adding days until it gets as close as possible...
}
谢谢