当前位置: 首页 > news >正文

java 解析入参里的cron表达式,修改周时间

文章目录

  • 前言
  • 一、java 解析入参里的cron表达式,修改周时间
  • 二、使用步骤
    • 1.示例
  • 总结


前言


一、java 解析入参里的cron表达式,修改周时间

示例: 第一种: 0 0 0,16 ? * 0,1
第2种 0 0 0,16 ? * 1-7
第3种 0 0 0,16 ? * ?
第4种 0 0 0,16 ? * *

二、使用步骤

1.示例

使用场景:
周传的是1-7 形式, 则对表达式里的周进行减1 ,
周传的是 0,1,2 形式, 则对周的值进行加1
周传的是? 或者 *, 则不处理


String modifiedCron = convertWeekDayToQuartz(cronExpression);/*** 转换星期字段:1=周一 → 2(Quartz的周一),7=周日 → 1(Quartz的周日)** @param cronExpression 原始Cron表达式(星期按1=周一)* @return 转换后的Cron表达式(适配Quartz)*/public static String convertWeekDayToQuartz(String cronExpression) {String[] parts = cronExpression.split(" ");if (parts.length < 6) {throw new IllegalArgumentException("Invalid Cron expression");}String dayOfWeek = parts[5];if (dayOfWeek.matches("[1-7]")) {// Quartz: SUN=1, MON=2, ..., SAT=7// Target: MON=1, TUE=2, ..., SUN=7int day = Integer.parseInt(dayOfWeek);// SUN(7)→1, MON(1)→2, ..., SAT(6)→7int quartzDay = day == 7 ? 1 : day + 1;parts[5] = String.valueOf(quartzDay);} else if (dayOfWeek.contains("-")) {// 处理范围(如 "1-5" → "2-6")String[] range = dayOfWeek.split("-");int start = Integer.parseInt(range[0]);int end = Integer.parseInt(range[1]);parts[5] = (start == 7 ? 1 : start + 1) + "-" + (end == 7 ? 1 : end + 1);} else if (dayOfWeek.contains(",")) {// 处理逗号分隔(如 "1,3,5" → "2,4,6")String[] days = dayOfWeek.split(",");StringBuilder sb = new StringBuilder();for (String d : days) {int day = Integer.parseInt(d);sb.append(day == 7 ? "1" : day + 1).append(",");}parts[5] = sb.substring(0, sb.length() - 1);}return String.join(" ", parts);}

总结

相关文章:

  • 链表的中间节点
  • JavaScript高级进阶(五)
  • HTTP协议重定向及交互
  • UniApp页面路由详解
  • AbortController 取消请求
  • C++23 std::byteswap:反转字节 (P1272R4)
  • 征战高端10余载,OPPO少了昔日的锐气
  • 链表反转_leedcodeP206
  • 如何查看和验证AWS CloudFront的托管区域ID
  • Vue + ECharts 实现多层极坐标环形图
  • 通过AWS Console连接服务器,简化运维过程
  • 企业出海降本:如何将应用从 AWS EC2 快速无缝迁移至DigitalOcean Droplet
  • 揭开应用程序的神秘面纱:深入了解 AWS X-Ray
  • 【docker】启动临时MongoDB容器、挂载数据卷运行数据库服务,并通过备份文件恢复MongoDB数据库备份数据
  • SQLMesh增量模型实战指南:时间范围分区
  • nginx 核心功能
  • 鸟笼效应——AI与思维模型【84】
  • 组件轮播与样式结构重用实验
  • Android开发——实现一个计算器
  • 利用3DMAX + Corona Renderer打造现代住宅逼真效果!
  • 游客曝九寨沟打网约车被出租车围堵,景区回应:当地无合规网约车
  • 上海市十六届人大常委会第二十一次会议表决通过有关人事任免事项
  • 对谈|李钧鹏、周忆粟:安德鲁·阿伯特过程社会学的魅力
  • 证券时报:“好房子”标准即将全面落地,购房者有哪些新期待
  • 王毅:坚持金砖团结合作,改革完善全球治理
  • 伊朗港口爆炸死亡人数升至70人