Cron式・次回実行日時計算
Cron 式(分・時・日・月・曜日の 5 フィールド)を入力すると、基準の日時より後の、次の実行日時を一覧で表示します。
Cron 式の書き方
一般的な Linux の cron(cronie の動きに合わせています)の、5 フィールドの方式です。
| フィールド | 範囲 | 書き方 |
|---|---|---|
| 分 | 0〜59 | *、数字、1,15(リスト)、10-20(範囲)、*/15・0-30/10(ステップ) |
| 時 | 0〜23 | 同上 |
| 日 | 1〜31 | 同上 |
| 月 | 1〜12 | 同上。名前(jan〜dec。大文字小文字は区別しない)も、リスト・範囲で使えます |
| 曜日 | 0〜7 | 同上。名前(sun〜sat)も使えます。0 と 7 は、どちらも日曜です |
@yearly(@annually)=0 0 1 1 *、@monthly=0 0 1 * *、@weekly=0 0 * * 0、@daily(@midnight)=0 0 * * *、@hourly=0 * * * *と読み替えます。- 曜日の範囲で、終わりが 0 のとき(
5-0)は、終わりを 7 として読みます(金・土・日)。 - ステップが範囲より大きいとき(時の
*/23など)は、先頭の値と、ステップで届く値だけになります(*/23= 0 時と 23 時)。
日と曜日の OR と AND
日のフィールドと曜日のフィールドの動きは、cron の実装(cronie)で決まっています。
- 日と曜日の、どちらのフィールドも
*で始まらないときは、どちらかに一致する日に実行されます(OR)。30 4 1,15 * 5は、毎月 1 日・15 日と、毎週金曜の 4:30 です。 - どちらかのフィールドが
*で始まるときは、日と曜日の両方に一致する日に実行されます(AND)。*で始まるフィールドは、「制限なし」として扱われます。 *と*/2は、同じ扱いです(どちらも先頭が*)。違いは、展開される値だけです(*/2は、1・3・5・…の奇数日)。0 0 */2 * 1= 奇数日 かつ 月曜日(AND)0 0 1-31/2 * 1= 奇数日 または 月曜日(OR。1-31/2は*で始まらないため)
- 結果の近くに、OR と AND のどちらの動きかを表示します。
探索の範囲
基準の日時の後から、最大 10 年先まで(2100 年 12 月 31 日まで)を、1 日ずつ調べます。2 月 29 日だけの指定のように、実行が何年も先になる式も、10 年以内なら見つかります。10 年以内に実行がないとき(存在しない日付の指定など)は、その旨を表示します。基準の日時と同じ時刻は含めません(「より後」)。
対応していない書き方
次の書き方は、入力すると、理由を表示します。
- 秒や年のフィールドがある、6〜7 フィールドの式(Quartz など)
?・L・W・#(Quartz の書き方)@reboot(起動時に 1 回実行する指定)~(cronie のランダム)、CRON_TZ(crontab ごとのタイムゾーン)5/15のように、開始値だけにステップを付ける書き方
AWS・Kubernetes・systemd の timer など、独自の書き方やタイムゾーン指定がある仕組みは、書き方が違うので、このツールでは扱いません。
タイムゾーンと夏時間
このツールは、入力した日時を、そのままの年月日時分として扱い、タイムゾーンの変換や夏時間の計算をしません。実際の cron が動く環境では、結果が異なる場合があります。cronie のマニュアルには、夏時間の切り替えで存在しない時刻の仕事は実行されず、2 回ある時刻の仕事は 2 回実行される、と書かれています。ほかの cron の実装では、扱いが違います。夏時間のない日本では、通常は影響しません。
計算例
*/15 9-17 * * 1-5… 平日の 9 時〜17 時に、15 分ごと0 9 * * 1… 毎週月曜の 9:000 0 1 * *… 毎月 1 日の 0:00(@monthlyと同じ)0 0 * * 0と0 0 * * 7… どちらも、毎週日曜の 0:0030 4 1,15 * 5… 毎月 1 日・15 日と、毎週金曜の 4:30(OR)0 0 29 2 *… うるう年の 2 月 29 日の 0:00(次は数年先)0 0 31 2 *… 2 月 31 日は存在しないので、10 年以内に実行されません
出典と確認日
書き方と動きは、cronie のソースコード(entry.c・cron.c)と、crontab(5) のマニュアル(cronie)で確認しました(2026年10月28日確認)。cronie 以外の実装の細かい違いは、確認していません。
よくある質問
日と曜日を両方指定すると、どうなりますか?
どちらのフィールドも * で始まらないときは、どちらかに一致する日に実行されます(OR)。片方でも *(*/2 を含む)で始まるときは、両方に一致する日に実行されます(AND)。
曜日の 0 と 7 は、どう違いますか?
どちらも日曜です。違いはありません。
実際の cron の動きと違うことがありますか?
あります。このツールは、入力した日時をそのまま扱い、タイムゾーンや夏時間を計算しません。cron の実装(cronie 以外)によっても、動きが違うことがあります。
結果が 10 年先まで出ないのは、なぜですか?
探索を、基準の日時から 10 年先までに限っているためです。存在しない日付(2 月 31 日など)の指定は、実行されません。