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

我正在使用慢性来获得任何一年的最后一个星期日.它很乐意给我第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)>

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...