1. 程式人生 > 其它 >OJ周賽三場——異或和

OJ周賽三場——異或和

Cron表示式通過特定的規則指定時間,用於定時任務,本文簡單記錄它的部分語法和例項,並不完全,能覆蓋日常大部分需求。

 1. Cron表示式介紹

Cron表示式是一個字串,分為6或7個域,每兩個域之間用空格分隔,其語法格式為:

"秒域 分域 時域 日域 月域 周域 年域"

其中,年域可以省略,省略時表示每年。單個域有多個取值時,使用半形逗號,隔開取值。每個域可以是確定的取值,也可以是具有邏輯意義的特殊字元。每個域最多支援一個前導零。

2. 域介紹

域名 是否必須 取值範圍 特殊字元
秒域 0~59的整數 * , - /
分域 0~59的整數 * , - /
時域 0~23的整數 * , - /
日域 1~31的整數 * , - / ? L W
月域 1~12的整數或JAN~DEC * , - /
周域 1~7的整數或SUN~SAT * , - / ? L #
年域 1970~2099的整數 * , - /

3. 特殊字元介紹

特殊字元 含義 示例
* 所有可能的值。 在月域中,*表示每個月;在星期域中,*表示星期的每一天。
, 列出列舉值。 在分鐘域中,5,20表示分別在5分鐘和20分鐘觸發一次。
- 範圍。 在分鐘域中,5-20表示從5分鐘到20分鐘之間每隔一分鐘觸發一次。
/ 指定數值的增量。 在分鐘域中,0/15表示從第0分鐘開始,每15分鐘。在分鐘域中3/20
表示從第3分鐘開始,每20分鐘。
? 不指定值,僅日期和星期域支援該字元。 當日期或星期域其中之一被指定了值以後,為了避免衝突,需要將另一個域的值設為?
L 單詞Last的首字母,表示最後一天,僅日期和星期域支援該字元。   說明 指定L字元時,避免指定列表或者範圍,否則,會導致邏輯問題。
  • 在日期域中,L表示某個月的最後一天。在星期域中,L表示一個星期的最後一天,也就是星期日(SUN)。
  • 如果在L前有具體的內容,例如,在星期域中的6L表示這個月的最後一個星期六。
W 除週末以外的有效工作日,在離指定日期的最近的有效工作日觸發事件。W字元尋找最近有效工作日時不會跨過當前月份,連用字元LW
時表示為指定月份的最後一個工作日。
在日期域中5W,如果5日是星期六,則將在最近的工作日星期五,即4日觸發。如果5日是星期天,則將在最近的工作日星期一,即6日觸發;如果5日在星期一到星期五中的一天,則就在5日觸發。
# 確定每個月第幾個星期幾,僅星期域支援該字元。 在星期域中,4#2表示某月的第二個星期四。