标签:image 时间段 cti div 不能 present src 数据 one
需求:
某个活动需按周或按日重复
1. A活动从 2020-01-01 ~ 2020-05-01 日期间可每天重复参与
2.A活动在 2020-01-01 ~ 2020-05-01 日期间内每 星期一,星期三, 星期日才可参与
实现:
数据记录: begin_date (开始时间) end_date(结束时间)cycle_type(重复类型 none/daily/weekly) weekdays(参与星期)
1 begin_date = Date.parse(‘2020-01-01‘) 2 end_date = Date.parse(‘2020-05-01‘)
weekdays = ‘1,3,0‘ 3 if cycle_type == ‘weekly‘ && weekdays.present? 4 # 按周重复 5 weekdays = weekdays.split(‘,‘) 6 weekdays.map! { |weekday| weekday.to_i == 0 ? 7 : weekday.to_i } 7 active_dates = (begin_date..end_date).select{ |date| weekdays.include?(date.cwday) } 8 else 9 # 按日重复(因为已过期的时间不能参与,则最早开始时间从今日开始) 10 active_dates = (end_date - begin_date).to_i.times.map{ |i| Date.today + i } 11 active_dates << end_date 12 end
输出:
按周重复输出
按日重复输出
Ruby 计算某个时间段内指定星期几的时间 跟 某个时间段内所有日期
标签:image 时间段 cti div 不能 present src 数据 one
原文地址:https://www.cnblogs.com/lwh-note/p/13679126.html