2

ある日が月の最終日かどうかを確認したいのですが、そうであれば関数が true を返し、それ以外の場合は false を返します。

たとえば、「Sun, 30 Jun 2013」という引数を渡すと、関数はその月の最後の日なので true を返しますが、「Mon, 03 Jun 2013」という引数を渡すと、関数は false を返すことです。

Rubyを使用してこれをどのように達成できますか。

4

3 に答える 3

11

私はこのようなことをします

def is_last_day(mydate)
    mydate.month != mydate.next_day.month 
end
于 2013-06-04T08:59:18.460 に答える
1
  1. で日付を解析しますDateTime.parseDateTime.parse多くの日付形式(例のものを含む)のサポートが組み込まれていますがDateTime.strptime、より複雑な形式にはいつでも使用できます。

  2. を使用して、次の日が 1 (翌月の最初の日) であるかどうかを確認しDate#+ます。

    require 'date'
    
    def last_day?(date_string)
      date = DateTime.parse(date_string)
      (date + 1).day == 1
    end
    
    puts last_day?('Sun, 30 Jun 2013') # true
    puts last_day?('Mon, 03 Jun 2013') # false
    
于 2013-06-04T08:57:30.817 に答える