2016-06-13 9 views
1

私のアプリケーションでは、24時間のスケジューラが必要です。月は無関係ですが、日は無関係ですが、オブジェクトをdatetimeとして保存すると、物事を比較するのが難しくなります。午後5時 は「今夜は」「クロージング」22時 までの午後5時から実行までRubyスケジューリングクロック抽象化? 24時間の時計が必要です。月無関係、無関係な日

「朝のTakeは」午前11時EST 「午後のニュース」までの5:30から実行は午前5時半

まで午後10時を実行午前11時を実行します私はそれがdatetime型として「正しい」入力は常に日と月を望んでいる取得の問題に実行してその発言18:30

場合

FeatureScheduler.get_current_feature =>「今夜」と言うことができるようにしたいのですがそして年...しかし、私は本当にスケジューラ24時間ぐらいの時計の周りに...私はTime.nowが午前5時30分から午前11時までの間にいるかどうかを見てみると、その日がうまくいきません。

24時間のクロックだけを気にするスケジューラの提案は、比較で日、月、年を使用しませんか?

答えて

1

これを行うにはエレガントな方法かもしれませんが、とにかく私のテイクです。

require 'time' 

class FeatureScheduler 
    def self.get_current_feature 
    case Time.now.strftime('%R') 
    when '05:30'...'11:00' 
     'The Morning Take' 
    when '11:00'...'17:00' 
     'Afternoon News' 
    when '17:00'...'22:00' 
     'Tonight' 
    else 
     'Wrap Up' 
    end 
    end 
end 

FeatureScheduler.get_current_feature 
#=> "Wrap Up" 
+0

値をハードコードしたくありません。 「フィーチャー」には、出版エディターが動的に変更できる時間があります。私は本当に時計の抽象化が大好きです.24時間の時計に基づいた比較は、比較を行うときに '日'または '月'または '年'を見ないだけです。 – slindsey3000

+0

入出力の例をいくつか教えてください。私はいくらか混乱している。 –

関連する問題