cron中文翻译工具类

前端不想像core表达式官网:https://cron.qqe2.com/这样,有一定的学习成本。
然后这个工具类的实现的效果就是把0 23 * * *这种,
翻译为每1天执行。指定时:23。指定分:00。
在这里插入图片描述

/**
 * cron转换中文工具类
 *
 * @author lixuan
 */
public class CronUtil {
   

    private static final Logger LOGGER = LoggerFactory.getLogger(CronUtil.class);

    /**
     * cron中文表达式
     */
    private static final List<ValueLabelPair> HOUR_LIST = generateValueLabelPairs(0, 23);
    private static final List<ValueLabelPair> MINUTES_LIST = generateValueLabelPairs(0, 59);
    private static final List<ValueLabelPair> DATE_LIST = generateDateValueLabelPairs(1, 31);

    public static String convertToChineseExpression(String cronExpression) {
   
        String result = "";
        try {
   
            String[] arr = cronExpression.split(" ");
            int index = -1;
            for (int i = 0; i < arr.length; i++) {
   
                if ("*".equals(arr[i]) || arr[i].contains("/")) {
   
                    index = i;
                    break;
                }
            }

            int n;
            String unit;
            if ("*".equals(arr[index])) {
   
                n = 1;
            } else {
   
                n = Integer.parseInt(arr[index].split("/")[1]);
            }
            switch (index) {
   
                case 0:
                    unit = "分";
                    break;
                case 1:
                    unit = "时";
                    break;
                case 2:
                    unit = "天";
                    break;
                case 3:
                    unit = "月";
                    break;
                case 4:
                    unit = "星期";
                    break;
                default:
                    unit = "";
                    break;
            }

            result = "每" + n + unit + "执行。";
            if ("月".equals(unit) || "天".equals(unit)) {
   
                String specifiedDays = expandDayAsSpecifiedValues(arr[2], DATE_LIST);
                //排序
                specifiedDays = updateSpecified(specifiedDays);
                if (!"".equals(specifiedDays) && !arr[2].contains("/")) {
   
                    result += "指定日:" + specifiedDays + "。";
                }
            }
            if (!"分".equals(unit) && !"时".equals(unit)) {
   
                String specifiedHours = expandSpecifiedValues(arr[1], HOUR_LIST);
                //排序
                specifiedHours = updateSpecified(specifiedHours);
                result += "指定时:" + specifiedHours + "。";
            }
            if (!"分".equals(unit)) {
   
                String specifiedMinutes 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值