如何知道距日期的天数,月数和年数的差额,我可以使用减法吗?

时间:2019-06-26 14:05:29

标签: ruby-on-rails ruby

我正在编写一个算法,在该算法中,我将要获得一个整数,并以此确定某个内容过期的日期。我已经知道了内容发布的日期。

示例:

发布日期:01/05/2019
过期天数:30
程序的结果:01/06/2019 //内容的到期日期

注意:用户输入的“过期天数”的值。

我该如何解决?您有任何文档或功能可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

有几种方法可以完成您想做的事情-有几种可能。

使用Time(我的建议是,根据您的需求如何变化以及您最终使内容过期的方式,您以后会有更大的灵活性): 您可以将“过期日期”转换为秒,然后将其添加到时间对象中。例如:

require "time"

t = Time.parse("01/05/2019")
days_to_expire = 30
expiration = t + (60 * 60 * 24 * days_to_expire)

使用Date

require "date"

d = Date.parse("01/05/2019")
days_to_expire = 30
expiration = d + days_to_expire

使用Rails Active::Support中的内置帮助程序:

t = Time.parse("01/05/2019")
days_to_expire = 30
expiration = t + days_to_expire.days

您可以了解有关Ruby Time here的更多信息,还可以了解Rails here和{内置于TimeNumeric的帮助程序。 {3}}。

答案 1 :(得分:0)

我将假设项目在Rails中回答,因为此问题被标记为Rails。您可以执行以下操作:

t = Date.parse("01/05/2019")
days_to_expire = 30   # Obtained from user input in your case
result = t + days_to_expire.days   # Similar to result = t + 30.days

您可以查看有关Date in the API docs here

的更多信息