JAVA cron转中文

该代码片段展示了如何将一个cron表达式转换为中文描述,如0021*?:每分钟执行,无特定星期和日期限制。方法`translateToChinese`处理了cron的各个部分:周、日、时、分、秒。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public static String translateToChinese(String cronExp)
{
    if (cronExp == null || cronExp.length() < 1)
    {
        return "cron表达式为空";
    }
    String[] tmpCorns = cronExp.split(" ");
    StringBuffer sBuffer = new StringBuffer();
    if(tmpCorns.length == 6)
    {
        sBuffer.append(getPeriod(tmpCorns[4], "月"));
        //解析周
        if(!tmpCorns[5].equals("*") && !tmpCorns[5].equals("?"))
        {
            char[] tmpArray =  tmpCorns[5].toCharArray();
            for(char tmp:tmpArray)
            {
                switch (tmp)
                {
                    case '1':
                        sBuffer.append("星期天");
                        break;
                    case '2':
                        sBuffer.append("星期一");
                        break;
                    case '3':
                        sBuffer.append("星期二");
                        break;
                    case '4':
                        sBuffer.append("星期三");
                        break;
                    case '5':
                        sBuffer.append("星期四");
                        break;
                    case '6':
                        sBuffer.append("星期五");
                        break;
                    case '7':
                        sBuffer.append("星期六");
                        break;
                    case '-':
                        sBuffer.append("至");
                        break;
                    default:
                        sBuffer.append(tmp);
                        break;
                }
            }
        }

        //解析日
        sBuffer.append(getPeriod(tmpCorns[3], "日"));
        //解析时
        sBuffer.append(getPeriod(tmpCorns[2], "时"));
        //解析分
        sBuffer.append(getPeriod(tmpCorns[1], "分"));
        //解析秒
        sBuffer.append(getPeriod(tmpCorns[0], "秒"));

    }

    return sBuffer.toString();

}
public static String getPeriod(String str,String period){
    StringBuffer stringBuffer=new StringBuffer();
    if(!str.equals("*"))
    {
        stringBuffer.append(str).append(period);
    }
    else
    {
        stringBuffer.append("每").append(period);
    }
    return stringBuffer.toString();
}
public static void main(String[] args) {
    System.out.println(translateToChinese("0 0 2 1 * ?"));
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值