gpt4 book ai didi

ruby - 如何在给定年份,月份,星期几和它落在 ruby 中的一周的情况下找到日期编号

转载 作者:太空宇宙 更新时间:2023-11-03 17:46:08 25 4
gpt4 key购买 nike

所以我是 ruby​​ 的新手,不熟悉 Date gem 的语法,但是有没有办法找到像父亲节这样的移动假期的日期?

所以我现在的搬家假期类(class)是这样的:

class MovingHoliday < Holiday
def initialize (name, month, day_of_week, week, year=2016)
@name = name
@month = month
@day_of_week = day_of_week
@week = week
@year = year
@my_date = Date.new(year, month, day)
end
end

我的输入是这样的:

fathers_day = MovingHoliday.new("Fathers Day", 6, "sunday", 4, year)

6 是月份,“星期日”是星期几,4 是星期几。如果有任何可以/可以为此进行转换的语法,我只是想不通。除了 ruby​​s Date,我不能使用任何 gem 。

最佳答案

class MovingHoliday < Holiday
def initialize (name, month, day_of_week, week, year=2016)
@name = name
@month = month
@day_of_week = day_of_week
@week = week
@year = year
@my_date = Date.new(year, month, 1)
@my_date += 1 while !my_date.send("#{day_of_week}?")
@my_date += (7 * (week - 1))
end
end

虽然不漂亮,但很管用。它需要一个月的第一天,向上移动一天,直到它是一周中的正确日期,然后增加适当的周数。

就目前而言,它假设您指定了一周中的实际日期。您可能希望以某种方式清理输入或从“星期日”转换为 0(my_date.wday 返回 0 表示星期日,1 表示星期一,等等)

关于ruby - 如何在给定年份,月份,星期几和它落在 ruby 中的一周的情况下找到日期编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37145026/

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