如何查看日期是ruby中的最后一个月

时间:2013-06-04 08:53:30

标签: ruby

我想检查一天是否是该月的最后一天,如果是,则函数返回true,否则返回false。

例如,如果我传入“Sun,2013年6月30日”的参数,则该函数将返回true,因为它是该月的最后一天,但是如果我传入参数“Mon,03 Jun” 2013“的功能是返回虚假。

如何使用Ruby实现这一目标。

3 个答案:

答案 0 :(得分:14)

如果您正在使用Rails,您也可以随时执行此操作:

date == date.end_of_month

或检查月的结尾:

date == Date.today.end_of_month

答案 1 :(得分:10)

我会做这样的事情

def is_last_day(mydate)
    mydate.month != mydate.next_day.month 
end

答案 2 :(得分:1)

  1. 使用DateTime.parse解析日期。 DateTime.parse内置支持多种日期格式(包括您示例中的日期格式),但您可以始终使用DateTime.strptime来处理更复杂的格式。

  2. 使用Date#+查看第二天​​是否为1(下个月的第一天)。

    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