码迷,mamicode.com
首页 > 其他好文 > 详细

Ruby 计算某个时间段内指定星期几的时间 跟 某个时间段内所有日期

时间:2020-09-18 03:02:24      阅读:38      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!