0

我需要用简单的方法来存储和检索餐厅时间,比如morningmidnight。我现在正在做的是:

def morning
    Time.new("6:30 am")
end

def midnight
    Time.new("12:00 am")
end

我现在可以比较时间,但这似乎是错误的方法,然后我不知道如何读取这些时间值,例如:

    def open?(time)
        time >= morning && time <= midnight 
    end

这样做的正确方法是什么?

4

2 回答 2

0

对于像我这样不喜欢在 gemfile 中为较小的东西添加额外 gem 的人,会选择:

def morning
    DateTime.now.beginning_of_day + (6.5).hours
end

def midnight
   DateTime.now.end_of_day
   # Or DateTime.now.at_midnight + 1 
end

DateTime 为我们提供了更多选项,例如:at_beginning_of_day、:at_beginning_of_month、:at_beginning_of_quarter、:at_beginning_of_week、:at_beginning_of_year、:at_end_of_month、:at_end_of_quarter、:at_end_of_week、:at_end_of_year、:at_midnight, :awesome,_inspec :beginning_of_month, :beginning_of_quarter, :beginning_of_week, :beginning_of_year, :wday, :sunday?, :monday?, :tuesday?, :wednesday?, :thursday?, :friday?, :saturday?

就这样做(相信我你不会后悔的): DateTime.now.methods.sort

于 2013-07-22T08:10:10.547 回答
0

使用chronicgem 我能够做到这一点:

    def opens_at
        morning
    end

    def closes_at
        midnight
    end

    def open?(time)
        Chronic.parse(time) >= morning && Chronic.parse(time) < midnight
    end

    private
    def morning
        Chronic.parse("6:30 am")
    end

    def midnight
        Chronic.parse("midnight")
    end

这适用于比较

于 2013-07-22T07:03:22.627 回答