2015-04-24 2 views
0

Я хотел бы иметь возможность запускать метод, который будет измерять Time.now на определенную дату в будущем, что-то вроде этого:Измерение против будущего времени в Руби

def graduated? 
    Time.now == # future date ? (puts "Congrats!") : (puts "Not there yet!") 
end 

Я попытался войти в синтаксис от рубиновых документов на следующую дату: 2015-8-7

но это неправильное. Может ли кто-то исправить мой синтаксис о том, как жестко кодировать будущую дату для сравнения?

ответ

1

Если вы только что указали "2015-8-7", это строка, вы хотите объект Time. Это должно указывать вам в правильном направлении:

2.2.0 :001 > other = Time.new(2015, 8, 7) 
=> 2015-08-07 00:00:00 -0500 
2.2.0 :002 > Time.now < other 
=> true 
2.2.0 :003 > Time.now > other 
=> false 

Вы также можете использовать Date объект, и Date.today, Date.new(2015, 8, 7) и получить аналогичные результаты.

+0

Спасибо, Ник. Кажется очевидным сейчас. –

+0

Когда нужно это требовать? Я не в irb. Отлично. Вам нужно указать «дата» для использования Даты, я это знаю. –

+1

Спасибо за разъяснение. Я этого не знал. Похоже, что 'require 'time'' требуется только для расширения класса' Time', чтобы включить [определенные методы] (http://ruby-doc.org/stdlib-2.1.1/libdoc/time/rdoc/Time. html) для разбора и преобразования времени. –

Смежные вопросы