近日有个需求,要求某项定时任务在每个月的最后一个工作日执行(仅考虑周末的情况),但是没有好的cron表达式写法,最后在stackoverflow找到了思路

cron每天执行一次,然后在执行定时任务的方法加个判断

public static boolean checkLastWorkDay() {
Calendar cal1 = Calendar.getInstance();
int month = cal1.get(Calendar.MONTH) + 1;
int year = cal1.get(Calendar.YEAR);
int day = cal1.get(Calendar.DATE);
LOG.warn(year + "年" + month + "月" + day + "日");
int week = 0;
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month - 1);
int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);// 获取该月最大一天
cal.set(Calendar.DAY_OF_MONTH, lastDay);
week = cal.get(Calendar.DAY_OF_WEEK) - 1 == 0 ? 7 : cal.get(Calendar.DAY_OF_WEEK) - 1;// 获得最后一天是星期几
if (week == 7) {
lastDay = lastDay - 2;
} else if (week == 6) {
lastDay = lastDay - 1;
}
if (day == lastDay) {
LOG.warn("今天是本月的最后一个工作日");
return true;
} else {
LOG.warn("今天不是是本月的最后一个工作日");
return false;
}
}

cron表达式 每个月的最后一个工作日的另一种解法相关推荐

  1. cron表达式每个月最后一天

    注意:比较低版本的spring不支持0 59 23 L * ?的写法,会报无法解析L符号的错误,建议改为高版本spring <!-- spring定时器 --><bean id=&q ...

  2. cron 表达式解读

    cron 是一个已经存在了很长时间的 UNIX 工具,因此它的调度能力很强大 并得到证明.CronTrigger 类基于 cron 的调度功能. CronTrigger 使用"cron 表达 ...

  3. Spring定时任务(Cron表达式)

    定时任务 在线Cron表达式生成器: https://cron.qqe2.com/ 一.SpringBoot自带的定时任务 解决:使用异步任务 + 定时任务来完成定时任务不阻塞的功能 定时任务 1.@ ...

  4. Spring Boot定时任务-cron表达式

    其实cron表达式呢,其实就是一个基于字符串的,基于时间的一个定义格式,那我们就来看一下cron表达式语法的定义,cron表达式它是一个字符串的,并且在字符串当中呢,包含6个域或者7个域,然后每个域表 ...

  5. spring cron表达式及解析过程

    1.cron表达式 cron表达式是用来配置spring定时任务执行时间的字符串,由5个空格分隔成的6个域构成,格式如下: {秒}  {分}  {时}  {日}  {月}  {周} 每一个域的含义解释 ...

  6. spring定时任务cron为每季度第一个工作日转换为cron表达式

    最近系统有个需求,执行一个定时任务发送待办事项,一年有六次,分别为每季度第一个工作日.第二季度和第四季度结束后的第十个工作日,可头疼坏了 还好我们系统有个工作日表,于是思路就是先查询出每季度的第一天, ...

  7. quartz 每月一次_quartz cron表达式 启动时先执行一次 以后每个月执行一次

    "0 0 0 1* ?" 每月第一日0时执行 --------------------------------------------- 字段 允许值 允许的特殊字符 秒 0-59 ...

  8. quartz 每月一次_quartz cron表达式:启动时先执行一次 以后每个月执行一次,怎么做?...

    2017-12-02 回答 "0 0 0 1* ?" 每月第一日0时执行 --------------------------------------------- 字段 允许值 ...

  9. 定时任务 Cron表达式

    Cron表达式是一个表示时间周期的字符串. 分为6或7个域,每一个域代表一个含义. 验证工具: http://cron.qqe2.com/ Cron有如下两种语法格式: 格式1: 秒 分 时 天(月) ...

  10. 作业调度框架 Quartz 学习笔记(三) -- Cron表达式

    2019独角兽企业重金招聘Python工程师标准>>> 前面两篇说的是简单的触发器(SimpleTrigger) , SimpleTrigger 只能处理简单的事件出发,如果想灵活的 ...

最新文章

  1. hosts文件连接服务器失败,ssh连接远程服务器出现Host key验证失败的解决方案
  2. 【PHPMailer】写一封邮件
  3. id随机选择另一张表格的 sql_表格问答1:简介
  4. 面试准备每日五题:C++(四)——typedefdefine、指针常量、队列栈、地址赋值、C和C++结构体
  5. 【Dairy】2016.10.30 BirthdayParty
  6. Linux 信号详解五(信号阻塞,信号未决)
  7. 辽宁电信TY12008-Z_智能机顶盒2.0_S905MB_线刷固件包
  8. [算法]详解关键路径算法
  9. 质数/素数 - 合数
  10. 【产品】 产品设计:ID设计和MD设计详解
  11. java里的哈希值。
  12. 【大学物理·早期量子论和量子力学基础】一维定态薛定谔方程的应用
  13. 为什么变形兄弟只有四人拿到bilibili百大UP主?【B站数据分析】
  14. php 邮箱服务,laravel邮箱服务使用
  15. 如何才能做好短线交易?这三点你要知道!
  16. hualinux 编程概念 3.11 快速原型模型:以最快最小代价完成产品特性
  17. Machine Learning Basics(2)
  18. matlab查看hdf5数据,Matlab 操作 HDF5文件
  19. 关于CStdioFile
  20. 电脑A和电脑B建立通信,这就是网络。IO、中断、缓冲区这都不是研究网络时该关心的事

热门文章

  1. mac怎么禁止某个应用联网?
  2. Win11修改用户名(超详细图文)
  3. ARM920T虚拟地址原理分析及实现
  4. STM32用于PWM占空比测量
  5. MPEG LA提供一站式ATSC 3.0许可证
  6. epson机器人编程 范例_Epson机械手简单实例编程
  7. swiper禁用手动拖拽
  8. 【数字图像处理matlab】RGB转HIS,HIS转RGB
  9. MySQL 两个数据库表中合并数据
  10. 《哈佛大学幸福课》笔记