【发布时间】:2021-05-06 17:48:03
【问题描述】:
如何根据当年的日期找到日期? 比如你有一年的第235天,它对应的是哪个日期?
例如,您可以按如下方式查找一年中的某一天:
Date.today.yday
#=> 126 (for May 6, 2021)
如何实现相反的效果?
Date.some_method(126)
#=> 2021-05-06
我尝试如下:
now = Date.today
#=> Thu, 06 May 2021
start_year = now.beginning_of_year
#=> Fri, 01 Jan 2021
start.advance(days: (start.yday + 126))
#=> Sat, 08 May 2021
为什么相差2天?
【问题讨论】:
-
区别在于
start.yday是1,而不是0。因此,要获得一年中的第一天,您必须提前 0 天(您已经在那里),所以应该是.advance(days: 125)才能获得一年中的第 126 天(当您提前 127 天时) -
啊,谢谢你,很好!
标签: ruby activesupport