zoukankan      html  css  js  c++  java
  • Ruby 计算某个时间段内指定星期几的时间 跟 某个时间段内所有日期

    需求:

       某个活动需按周或按日重复

      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

    输出:

     按周重复输出

      

     按日重复输出

     

  • 相关阅读:
    单点登陆的javascript类原创
    goole图标
    字符串string的相关应用
    今天心情好,发首我喜欢的歌天黑黑
    爱情幸福!
    linux虚拟实现
    页面显示的问题
    由我们MIS的老师,所引发的一点感想.
    有关PERL5和正则表达式
    本来没有什么好说的!
  • 原文地址:https://www.cnblogs.com/lwh-note/p/13679126.html
Copyright © 2011-2022 走看看