本题目主要解决如下几个问题: 1、该月的1号是星期几; 2、该月份有几天; 3、2月份天数的特殊处理; 4、输出格式问题。...我们先用简单的来计算一下,现已知今天是星期天,第k天后是星期几,我们可以观察下图,得出一个规律:第k天后是星期k%7(如果是0代表星期天) 题目给的已知条件是星期一,现要求第k天是星期几,这里的k是2007...,代入该式就可求出XXXX年XX月1日是星期几) 问题2:该月份有几天 我们可以用一个数组来记录每月有几天,需要时在调用。...问题3:2月份天数的特殊处理 其实也就是判断某年是否为闰年的问题,比较简单,代码如下: 问题4:输出格式问题 查看样例输出,可以看出,每一个星期几对应3个空格,即用%3d的格式输出。...每次输出星期6之后,就要输出\n,但这里需要注意一个问题,即最后输出“——————————-”前也要输出一个\n,即以下代码输出最后一行: 这会导致该月份最后一天是星期6这种特殊情况,而输出多一个\n,
例如:在 DayofMonth使用5W,如果5日是星期六,则将在最近的工作日:星期五,即4日触发。如果5日是星期天,则在6日(周一)触发;如果5日在星期一 到星期五中的一天,则就在5日触发。...例如在4#2,表示某月的第二个星期三。 举几个例子: 0 0 2 1 * ? * 表示在每月的1日的凌晨2点调度任务 0 15 10 ?...每月最后一日的上午10:15触发 "0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发 "0 15 10 ?...在天(月)子表达式中,L表示一个月的最后一天 在天(星期)自表达式中,L表示一个星期的最后一天,也就是SAT 如果在L前有具体的内容,它就具有其他的含义了 例如:6L表示这个月的倒数第6天,FRIL表示这个月的最一个星期五...每月1号凌晨1点执行一次: 0 0 1 1 * ? 每月最后一天23点执行一次: 0 0 23 L * ?
汇总目录链接:【Spring Boot实战与进阶】学习目录 文章目录 1、cron 表达式 2、特殊字符的含义 3、举例 4、Spring Boot项目中如何使用 5、ScheduleTask 定时任务测试类...L仅被用于天(月)和天(星期),是单词"Last"的缩写, 在天(月)中表示一个月的最后一天,在天(星期)中表示一个星期的最后一天,也就是周六-表示一个范围,表示一个列表值 3、举例 key释义0 0...每月15号18点触发0 0 18 L * ?每月最后一天的18点触发0 30 6 ? * 1每周星期天,6点30分触发0 30 6 ? * 6L每月最后一周的星期五的6点30分触发0 10 3 ?...* 1#3每个月的第三个星期天触发,#号只能出现在星期的位置0 14 13 20 5 ?...每年的5月20号 13点14分触发 4、Spring Boot项目中如何使用 SpringBoot的启动类上添加@EnableScheduling,此注解的作用是发现注解@Scheduled的任务并后台执行
(一星期的第一天), 以此类推,7代表星期六(一星期的最后一天), 不允许为空值,若值不合法, 调度器将抛出SchedulerException异常 "*" 代表每星期都触发; "?"...代表从星期天开始触发,每 隔3天触发1次;"1-5/2"表达式意味着在[1,5]范围内,每隔2天触发, 即星期天、星期二、星期四触发 "L" 如果{星期}占位符如果是"L",即意味着星期的的最后一天触发...每月最后一日的上午10:15触发 "0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发 "0 15 10 ?...* 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发 "0 15 10 ?...每月1号凌晨1点执行一次:0 0 1 1 * ? 每月最后一天23点执行一次:0 0 23 L * ? 每周星期天凌晨1点实行一次:0 0 1 ?
,注:不是第1周,第二周的意思 另外:1表示星期天,2表示星期一。...* 第7为,年份,可以留空,取值1970-2099 (*)星号:可以理解为每的意思,每秒,每分,每天,每月,每年... (?)...每天3点的 5分,15分,25分,35分,45分,55分这几个时间点执行 0 10 3 ? * 1 每周星期天,3点10分 执行,注:1表示星期天 0 10 3 ?...* 1#3 每个月的第三个星期,星期天 执行,#号只能出现在星期的位置 在此我要说明,springBoot 中的 schedule 支持的 cron 表达式和这个不太相符,官方说的星期表示,1是周天,...INFO 18864 --- [pool-1-thread-1] com.yiyexy.task.Task : 听说今天是周日 好了,这个坑就记录到这吧,最后奉上一句
/ L # 年 否 1970-2099 , - * / 上面列表中值范围还是比较好理解的,但是比较令开发者难以理解的就是通配符,其实 cron 表达式的难点也在于通配符。...如果在“日”这个域中设置 *,表示每一天都会触发。 ? 表示不指定值。使用的场景为不需要关心当前设置这个字段的值。...L 表示英文中的LAST 的意思,只能在 “日”和“周”中使用。在“日”中设置,表示当月的最后一天(依据当前月份,如果是二月还会依据是否是润年), 在“周”上表示周六,相当于”7”或”SAT”。...如果在”L”前加上数字,则表示该数据的最后一个。...每月 1 号凌晨 1 点执行一次:0 0 1 1 * ? 每月最后一天 23 点执行一次:0 0 23 L * ? 每周星期天凌晨 1 点实行一次:0 0 1 ?
例如:在 DayofMonth使用5W,如果5日是星期六,则将在最近的工作日:星期五,即4日触发。如果5日是星期天,则在6日(周一)触发;如果5日在星期一到星期五中的一天,则就在5日触发。...例如在4#2,表示某月的第二个星期三。 举几个例子: 0 0 2 1 * ? * //表示在每月的1日的凌晨2点调度任务 0 15 10 ?...//每月15日上午10:15触发 "0 15 10 L * ?" //每月最后一日的上午10:15触发 "0 15 10 ?...* 6L" //每月的最后一个星期五上午10:15触发 "0 15 10 ?...在天(月)子表达式中,"L"表示一个月的最后一天 在天(星期)自表达式中,"L"表示一个星期的最后一天,也就是SAT 如果在"L"前有具体的内容,它就具有其他的含义了 例如:"6L"表示这个月的倒数第
springboot07、task定时任务 定时任务的概述 在项目中开发定时任务应该是一种比较常见的需求,在Java中开发定时任务主要有三种方案:一是使用JDK自带的Timer,二是使用第三方组件...每月1号凌晨1点执行一次任务: "0 0 1 1 * ?" 每月1号凌晨2点执行一次任务: "0 0 2 1 * ?...*" 每月最后一天23点执行一次任务: "0 0 23 L * ?" 每周星期天凌晨1点执行一次任务: "0 0 1 ?...每月1号凌晨1点执行一次任务: "0 0 1 1 * ?" 每月1号凌晨2点执行一次任务: "0 0 2 1 * ?...*" 每月最后一天23点执行一次任务: "0 0 23 L * ?" 每周星期天凌晨1点执行一次任务: "0 0 1 ? * L" 效果:
这些子表达式是分开的空白,代表: 1. Seconds 2. Minutes 3. Hours 4....:表示每月的某一天,或第周的某一天 “L”:用于每月,或每周,表示为每月的最后一天,或每个月的最后星期几如“6L”表示“每月的最后一个星期五” “W”:表示为最近工作日,如“15W”放在每月(day-of-month...)字段上表示为“到本月15日最近的工作日” “#”:是用来指定的每月第n个工作日,例 在每周(day-of-week)这个字段中内容为"6#3" or "FRI#3" 则表示“每月第三个星期五” Cron...n/m表示从n开始,每次增加m “L”字符:用在日表示一个月中的最后一天,用在周表示该月最后一个星期X “W”字符:指定离给定日期最近的工作日(周一到周五) “#”字符:表示该月第几个周X。...每月1号凌晨1点执行一次:0 0 1 1 * ? 每月最后一天23点执行一次:0 0 23 L * ? 每周星期天凌晨1点实行一次:0 0 1 ?
:表示每月的某一天,或每周的某一天 "L":用于每月或每周,表示为每月的最后一天,或每个月的最后一个星期几如 "6L" 表示 “每月的最后一个星期五” "W":表示为最近的工作日,如 "15W" 放在每月...(day-of-month)字段上表示为 “到本月 15 日最近的工作日” "#":是用来指定每月第 n 个工作日,例如在每周(day-of-week)这个字段中内容为 "6#3" or "FRI#3"... 则表示 “每月第三个星期五” Cron 表达式的格式: 秒 分 时 日 月 周 年 (可选) 只有日和周可以为 "?"...n/m 表示从 n 开始,每次增加 m “L” 字符:用在日表示一个月中的最后一天,用在周表示该月最后一个星期 X “W” 字符:指定离给定日期最近的工作日 (周一到周五) “#” 字符:表示该月第几个周...每月 1 号凌晨 1 点执行一次:0 0 1 1 * ? 每月最后一天 23 点执行一次:0 0 23 L * ? 每周星期天凌晨 1 点实行一次:0 0 1 ?
当字段日期或星期其中之一被指定了值以后,为了避免冲突,需要将另一个字段的值设为?。 L 单词Last的首字母,表示最后一天,仅字段日期和星期支持该字符。...在日期中,L表示某个月的最后一天。在星期中,L表示一个星期的最后一天,也就是星期六。 如果在L前有具体的内容,例如,在字段星期中的6L表示这个月的最后一个星期五。...在日期中5W,如果5日是星期六,则将在最近的工作日星期五,即4日触发。如果5日是星期天,则将在最近的工作日星期一,即6日触发;如果5日在星期一到星期五中的一天,则就在5日触发。...每月最后一天23点执行一次 0 0 23 L * ? 每周六8点执行一次 0 0 8 ? * L 每月最后一个周五,每隔2小时执行一次 0 0 */2 ?...* 4 每年三月的星期三的下午2:10和2:44各执行一次 0 10,44 14 ? 3 4 每月的第三个星期五上午10:15执行一次 0 15 10 ?
每月1号凌晨1点执行一次:0 0 1 1 * ? 每月最后一天23点执行一次:0 0 23 L * ?...每周星期天凌晨1点实行一次:0 0 1 ? * L 在26分、29分、33分执行一次:0 26,29,33 * * * ?...每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?
每月1号凌晨1点执行一次:0 0 1 1 * ? 每月最后一天23点执行一次:0 0 23 L * ? 每周星期天凌晨1点实行一次:0 0 1 ?...每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?
每周的第几天 | ∨ * * * * * * ^ | 每月的第几天 如上其中的 每月的第几天、每周的第几天 支持 最后几天...(L) 的语义 例如: 0 0 0 L * * 每月最后一天的零时 0 0 0 L-3 * * 每月最后第三天的零时 (L-d 格式) 0 0 0 * * 5L 每月最后的星期五零时...(dL 格式) 0 0 0 * * FRIL 每月最后的星期五零时 ( (星期一星期天的英文缩写)L 格式) 增强原有表达式 工作日 * * * * * * ^...| 每月的第几天 如上其中的 每月的第几天 支持 工作日 (W)的语义 例如: 0 0 0 1W * * 每月的第一个工作日零时 0 0 0 LW * * 每月的最后一个工作日零时 增强原有表达式...* 5#2 每月第二周的星期五零时 0 0 0 ?
月 , 调用 Date 对象的 getMonth 方法 , 输出的日期的月份是 3 ; 3、获取每月的第几天 - getDate 调用 Date.prototype.getDate() 获取 指定日期对象...是一个月中的哪一天 , 返回值取值范围 1 ~ 31 ; 参考文档 : https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference...内置对象 , 参数为空 var date = new Date(); // 输出 : 26 console.log(date.getDate()); 今天是...2024 年 4 月 26 号 , getDate 函数 返回的就是 26 ; 4、获取每周的第几天 - getDay 调用 Date.prototype.getDay() 获取 指定日期对象 是一个星期中的哪一天..., 返回值取值范围 0 ~ 6 , 0 表示星期天 , 1 表示星期一 , 5 表示星期五 ; 参考文档 : https://developer.mozilla.org/zh-CN/docs/Web/
n/m表示从n开始,每次增加m “L”字符:用在日表示一个月中的最后一天,用在周表示该月最后一个星期X “#”字符:表示该月第几个周X。...每月最后一日的上午10:15触发 "0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发 "0 15 10 ?...每月1号凌晨1点执行一次:0 0 1 1 * ? 每月最后一天23点执行一次:0 0 23 L * ? 每周星期天凌晨1点实行一次:0 0 1 ?...替代 L 该符号只能放在Day of month与Day of week域中,在Day of month域中表示当月的最后一天,如果在Day of week域只有L表示这个星期的最后一天同’ 7’或’...SAT’意义相同,但如果在L前面还有内容就表示这个月的最后一个星期几,如’6L’ or ‘FRIL’就表示这个月的最后一个星期五 W 指定与工作日最接近的一天,如在day-of-month域中’15W’
每天3点的 5分,15分,25分,35分,45分,55分这几个时间点执行 0 10 3 ? * 1 每周星期天,3点10分 执行,注:1表示星期天 0 10 3 ?...* 1#3 每个月的第三个星期,星期天 执行,#号只能出现在星期的位置 常用示例: 格式: [秒] [分] [小时] [日] [月] [周] [年] 0 0 12 * * ?...每月15号上午10点15分触发 0 15 10 L * ? 每月最后一天的10点15分触发 0 15 10 ? * 6L 每月最后一周的星期五的10点15分触发 0 15 10 ?...* 6L 2002-2005 从2002年到2005年每月最后一周的星期五的10点15分触发 0 15 10 ? * 6#3 每月的第三周的星期五开始触发 0 0 12 1/5 * ?...每月的第一个中午开始每隔5天触发一次 0 11 11 11 11 ?
4日触发。...如果5日是星期天,则在6日(周一)触发;如果5日在星期一 到星期五中的一天,则就在5日触发。另外一点,W的最近寻找不会跨过月份。...LW: 这两个字符可以连用,表示在某个月最后一个工作日,即最后一个星期五。#: 用于确定每个月第几个星期几,只能出现在DayofMonth域。例如在4#2,表示某月的第二个星期三。...每月最后一日的上午10:15触发 "0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发 "0 15 10 ?...* 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发 "0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发4.
crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。...而linux任务调度的工作主要分为以下两类: 1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存 2、个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信...ls 2、每5分钟执行 ls 命令 */5 * * * * ls 3、每天的 4:30 执行 ls 命令 30 4 * * * ls 4、每小时执行 ls 命令 0 * * * * ls...注意:0 表示星期天, 1 表示星期一,以此类推;也可以用英文来表示,sun 表示星期天,mon 表示星期一等。...11、每月 10号和20号 的 4:30 执行 ls 命令 30 4 10,20 * * ls 注意:" , " 用来连接多个不连续的时间 12、每天 8~11点 的第 25 分钟执行 ls 命令 25