gpt4 book ai didi

ruby - 用 Ruby 计算日期

转载 作者:数据小太阳 更新时间:2023-10-29 08:25:56 25 4
gpt4 key购买 nike

我有一些特定的功能来测试日期。我遇到了绊脚石。我需要从今天开始回溯 14 天以生成日期,但必须忽略周末。

例子:

今天是星期一,倒退 1 天将带我到星期五。回去 2 天会带我到星期四。我们总是落后两天。因此,当我在星期二着陆时,需要转到星期五和星期一到星期四。我让它工作了 1 周,但接下来的 7 天它又开始了相同的循环。

这是我目前所拥有的:

def date_calc_minus(number)


date = Date.today - number.to_i
day = date.strftime('%a %e %B %Y').split(' ')[0]


case
when day.include?('Sun')
puts day
calculated_date = date - 2
when day.include?('Sat')
puts day
calculated_date = date - 2
else
puts day
calculated_date = date - 2
if calculated_date.strftime('%a %e %B %Y').split(' ')[0].include?('Sun')
calculated_date = calculated_date - 2
elsif calculated_date.strftime('%a %e %B %Y').split(' ')[0].include?('Sat')
calculated_date = calculated_date - 2
end
end

calculated_date.strftime('%a %e %B %Y')
end

start = 1
stop = 14
range = start.to_i.upto(stop.to_i).to_a

range.each_with_index do |number, index|
puts date_calc_minus(number)
end


#=>



Sun
Fri 27 April 2018
Sat
Thu 26 April 2018
Fri
Wed 25 April 2018
Thu
Tue 24 April 2018
Wed
Mon 23 April 2018
Tue
Fri 20 April 2018
Mon
Thu 19 April 2018
Sun
Fri 20 April 2018
Sat
Thu 19 April 2018
Fri
Wed 18 April 2018
Thu
Tue 17 April 2018
Wed
Mon 16 April 2018
Tue
Fri 13 April 2018
Mon
Thu 12 April 2018

我知道这不是很漂亮,但我看它的时间太长了,我的目光变得狭隘了。有没有一种简单的方法可以实现这一目标?

最佳答案

请注意使用 sunday? 方法来确定某个日期是否恰好是星期日。

require "date"
def date_calc_minus(number)
d = Date.today
number.times do
d -= 1
d -= 2 if d.sunday?
end
d
end

关于ruby - 用 Ruby 计算日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50100357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com