2

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

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

如何使用 Ruby 实现这一点。

4

3 回答 3

14

如果你使用 Rails,你也可以这样做:

date == date.end_of_month

或查看月底:

date == Date.today.end_of_month
于 2013-06-04T09:17:20.323 回答
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 回答