如何在ruby中检查day是月份的最后一个日期

如何在ruby中检查day是月份的最后一个日期,ruby,Ruby,我想检查一天是否是一个月的最后一天,如果是,函数返回true,否则返回false 例如,如果我传入一个参数“Sun,2013年6月30日”,函数将返回true,因为这是一个月的最后一天,但是如果我传入一个参数“Mon,2013年6月3日”,函数将返回false 如何使用Ruby实现这一点 使用解析日期DateTime.parse内置了对许多日期格式的支持(包括您的示例中的格式),但您始终可以将其用于更复杂的格式 使用查看第二天是否为1(下个月的第一天) 我会这样做 def is_last_da

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

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

如何使用Ruby实现这一点

  • 使用解析日期
    DateTime.parse
    内置了对许多日期格式的支持(包括您的示例中的格式),但您始终可以将其用于更复杂的格式

  • 使用查看第二天是否为1(下个月的第一天)


  • 我会这样做

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

    如果您使用的是Rails,您也可以这样做:

    date == date.end_of_month
    
    或者在本月底查看:


    这将接受日期对象而不是字符串。。。它可以像chris'+1一样转换。我喜欢使用
    next_day
    而不是
    date+1
    。下一天是Rails,而不是Ruby。我担心你是不对的。你的代码只检查是否是本月底,应该是
    Date.parse(str)==Date.parse(str)。月末
    @TheCha͢mp,如果你愿意,继续编辑。如果两者都保留的话会更好,所以读者可以选择适合他们用例的。
    date == date.end_of_month
    
    date == Date.today.end_of_month