Chronic を使用して、特定の年の月の最後の日曜日を取得しています。喜んでn番目の日曜日を与えてくれるだろうが、最後の日曜日ではない.
これは機能しますが、必要なものではありません:
Chronic.parse('4th sunday in march', :now => Time.local(2015,1,1))
これは私が必要とするものですが、動作しません:
Chronic.parse('last sunday in march', :now => Time.local(2015,1,1))
この明らかな制限を回避する方法はありますか?
更新:以下の2つの回答はどちらも優れているため、支持していますが、これはすでに「純粋なRuby」(行のほかに2行のコードrequire 'date'
)で実装していますが、管理者に実演しようとしていますRuby は、なくなりつつある (そしてこれを計算するために数十行のコードを持っていた) Java コードベースを置き換えるために使用する適切な言語であり、私はあるマネージャーに、Ruby の 1 行でおそらくそれを行うことができると言いました。読みやすく、維持しやすいでしょう。