3

スケジュールに基づいて物事を行う必要があるコードがいくつかあります。たとえば、営業時間中に X を実行し、営業時間後に Y を実行します。スケジュールは顧客によって定義されるため、人々が記述してプログラムで解析できる表記が必要です。 . 私は次のようなことを考えています:

12/25:0730-1730 Do Y
[Mo-Fr]:0730-1730 Do X
[Mo-Tu]:1730-0730 Do Y
Fr:1730-Mo:0730 Do Y

間違いなく週ごとの変動があります。年間変動(休日)の可能性が高いようです。効率的かつ柔軟な表記法を希望します。

時間範囲を解析し、特定の日時がどの範囲にあるかを教えてくれる Java コードも必要です。

私はウェブを検索しましたが、何も見つかりませんでした。最も近いのは CRON 表記ですが、これは私が必要としているものではありません。

既存の表記法の定義と実装を知っている人はいますか?

ありがとう、

4

2 に答える 2

4

Java Joda 時間(Scala ラッパーscala-time ) は、時間計算用の強力なライブラリです。あなたが求めているようなことをするgoogle-rfc-2445を見ることができます(?)。

Java スケジューラーを探している場合は、 http://www.quartz-scheduler.org/が適切なオプションです。

于 2011-02-27T21:53:32.363 に答える
1

箱から出して何かを見つけることはないと思います。このような場合は、実装を自分で行い、コードを完全に制御することをお勧めします。antlrを使用してパーサーを作成できます。

構文に優先順位の概念を追加します。そうすれば、何かをスケジュールするのが簡単になります

01.01.2011-31.01.2011 prio 1 do-idle-stuff
[Mo-Fr]               prio 2 do-work
[Sa-Su]               prio 2 weekend
10.02.2011-17.02.2011 prio 3 go-on-holidays
于 2011-02-27T21:34:39.470 に答える