加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 获得本月的最后一个星期天

发布时间:2020-12-17 04:36:58 所属栏目:百科 来源:网络整理
导读:我正在使用慢性来获得任何一年的最后一个星期日.它很乐意给我第n个星期天,但不是最后一个星期天. 这有效,但不是我需要的: Chronic.parse('4th sunday in march',:now = Time.local(2015,1,1)) 这是我需要的,但不起作用: Chronic.parse('last sunday in mar
我正在使用慢性来获得任何一年的最后一个星期日.它很乐意给我第n个星期天,但不是最后一个星期天.

这有效,但不是我需要的:

Chronic.parse('4th sunday in march',:now => Time.local(2015,1,1))

这是我需要的,但不起作用:

Chronic.parse('last sunday in march',1))

这种明显的限制有什么办法吗?

更新:我正在推测下面的两个答案,因为它们都很好,但我已经在“纯Ruby”中实现了这个(在2行代码中,除了require’date’行之外),但我正在尝试向管理层证明Ruby是用来替换正在消失的Java代码库的正确语言(并且有几十行代码来计算它),我告诉一位经理我可能会在一行中做到这一点. Ruby,它易读且易于维护.

解决方法

我不确定慢性病(我之前没有听说过),但我们可以用纯ruby实现这个:)
##
# returns a Date object being the last sunday of the given month/year
# month: integer between 1 and 12
def last_sunday(month,year)
  # get the last day of the month
  date = Date.new year,month,-1
  #subtract number of days we are ahead of sunday
  date -= date.wday
end

last_sunday方法可以像这样使用:

last_sunday 07,2013
#=> #<Date: 2013-07-28 ((2456502j,0s,0n),+0s,2299161j)>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读