从指定日期起,每14天提取一次ruby数组,如何实现?
- 内容介绍
- 文章标签
- 相关推荐
本文共计309个文字,预计阅读时间需要2分钟。
在Ruby中,如何获取一年中每14天的日期数组,从指定日期开始向前和向后延伸?假设我要计算从今天开始,2015年6月16日收到的2周回收费用的日期数组。如何根据该日期获取今年每个回收计费日的数组?日期格式包含一个+s。
rubyrequire 'date'
def get_recycling_dates(base_date, weeks) start_date=Date.parse(base_date) dates=[] weeks.times do |week| # 每两周取一次,所以是14天 14.times do |day| dates < 使用示例today=Date.todaybase_date=2015-06-16weeks=2recycling_dates=get_recycling_dates(base_date, weeks) puts recycling_dates.map { |date| date.strftime('%Y-%m-%d+s') } 所以考虑我今天,2015年6月16日收到2周的回收费用.如何根据该日期获得今年每个回收计费日的数组. require 'date'
d = Date.strptime("6-16-2015", '%m-%d-%Y') # strange date format
end_year = Date.new(d.year, -1, -1)
p d.step(end_year, 14).to_a
# =>[#<Date: 2015-06-16 ((2457190j,0s,0n),+0s,2299161j)>, #<Date: 2015-06-30 ((2457204j,0s,0n),+0s,2299161j)>, ...
# Going backward:
begin_year = Date.new(d.year, 1, 1)
p d.step(begin_year,-14).to_a
# =>[#<Date: 2015-06-16 ((2457190j,0s,0n),+0s,2299161j)>, #<Date: 2015-06-02 ((2457176j,0s,0n),+0s,2299161j)>,...
本文共计309个文字,预计阅读时间需要2分钟。
在Ruby中,如何获取一年中每14天的日期数组,从指定日期开始向前和向后延伸?假设我要计算从今天开始,2015年6月16日收到的2周回收费用的日期数组。如何根据该日期获取今年每个回收计费日的数组?日期格式包含一个+s。
rubyrequire 'date'
def get_recycling_dates(base_date, weeks) start_date=Date.parse(base_date) dates=[] weeks.times do |week| # 每两周取一次,所以是14天 14.times do |day| dates < 使用示例today=Date.todaybase_date=2015-06-16weeks=2recycling_dates=get_recycling_dates(base_date, weeks) puts recycling_dates.map { |date| date.strftime('%Y-%m-%d+s') } 所以考虑我今天,2015年6月16日收到2周的回收费用.如何根据该日期获得今年每个回收计费日的数组. require 'date'
d = Date.strptime("6-16-2015", '%m-%d-%Y') # strange date format
end_year = Date.new(d.year, -1, -1)
p d.step(end_year, 14).to_a
# =>[#<Date: 2015-06-16 ((2457190j,0s,0n),+0s,2299161j)>, #<Date: 2015-06-30 ((2457204j,0s,0n),+0s,2299161j)>, ...
# Going backward:
begin_year = Date.new(d.year, 1, 1)
p d.step(begin_year,-14).to_a
# =>[#<Date: 2015-06-16 ((2457190j,0s,0n),+0s,2299161j)>, #<Date: 2015-06-02 ((2457176j,0s,0n),+0s,2299161j)>,...

