【发布时间】:2019-12-04 09:41:02
【问题描述】:
我正在尝试构建一个包含重复事件的应用程序。 在我的数据库中,我有一个表 recurring_pattern:
type_name sepereation_count day_of_week week_of_month day_of_month month_of_year
daily 0 NULL NULL NULL NULL
weekly 0 2 NULL NULL NULL
monthly 0 1 3 NULL NULL
monthly2 1 NULL NULL 10 NULL
yearly 0 NULL NULL 20 5
seperation_count:如果需要每隔一周/每月/等配置一次事件,则 seperation_count 将为 1
day_of_week: 1 = 星期一; 2 = 星期二等。
我有一个表 recurring_events:
id start_date last_occurence recurring_pattern_name
1 2019-10-01 2019-12-03 daily
2 2019-10-01 2019-12-03 weekly
3 2019-10-01 2019-11-18 monthly
4 2019-11-01 NULL monthly2
5 2019-01-01 2019-05-20 yearly
接下来的活动日期应该是:
1 = 2019-12-04 因为每一天
2 = 2019-12-10,因为每周星期二(每周从星期一开始)
3 = 2019-12-16,因为每 3 周的星期一
4 = 2019-12-10,因为每隔一个月的 10 日。
5 = 2020-05-20,因为每年的第 5 个月和第 20 天
现在我正在尝试在 Java 中查找下一个日期,但我不知道该怎么做。
对于我的日常活动
nextDate = lastPaid == null ? startDate : lastPaid;
nextDate = nextDate.plusDays(1 + recurringPattern.getSepereationCount());
但是我如何获得每周、每月、每月 2 和每年活动的下一个日期?
【问题讨论】:
标签: java date events date-manipulation