gpt4 book ai didi

ruby - 如何将 N 天添加到时间 T(考虑夏令时)?

转载 作者:数据小太阳 更新时间:2023-10-29 07:09:05 26 4
gpt4 key购买 nike

我有一个时间对象 T。向 T 添加 N 天的合理方法是什么?

我想出的最好的感觉有点折磨:

require 'date'
def add_days(time, days)
time.to_date.next_day(days).to_time
end

P.S.:如果您在美国,正确答案必须满足:

add_days(Time.new(2013, 3, 10, 0), 1) == Time.new(2013, 3, 11, 0)

如果您在欧盟,则正确答案必须满足:

add_days(Time.new(2013, 3, 31, 0), 1) == Time.new(2013, 4, 1, 0)

P.P.S:这是一个 Ruby 问题,而不是 Rails 问题。

最佳答案

Time 有一个 + method接受秒。

N = 3

t = Time.now + N * 86400 # 24 * 60 * 60

或者,如果您引入 ActiveSupport,则更容易

require 'active_support/core_ext'

t = Time.now + N.days

显然你可以制作自己的助手

class Fixnum
def days
self * 86400
end
end

t = Time.now # => 2013-01-31 16:06:31 +0700

t + 3.days # => 2013-02-03 16:06:31 +0700

关于ruby - 如何将 N 天添加到时间 T(考虑夏令时)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14621878/

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