我们一起聊聊 .NET 全能 Cron 表达式解析库
创始人
2025-07-13 11:31:18
0

前言

今天大姚给大家分享一个.NET 全能 Cron 表达式解析类库,支持 Cron 所有特性:TimeCrontab。

图片

Cron表达式介绍

Cron表达式是一种用于配置定时任务的时间表达式。它由一系列字段组成,每个字段代表任务在不同时间维度的调度规则。Cron 表达式常用于各种系统中,如操作系统的定时任务、应用程序的定时调度、数据备份等。

  • Cron在线表达式生成器:https://cron.ciding.cc/

图片图片

项目特点

  • 支持 Cron 所有特性
  • 超高性能
  • 易拓展
  • 很小,仅 4KB
  • 无第三方依赖
  • 开源、跨平台
  • 高质量代码和良好单元测试
  • 支持.NET Framework 3.5+及后续版本

项目源代码

图片图片

项目安装

创建一个名为TimeCrontabExercise的.NET 8 控制台应用。

图片图片

图片图片

图片图片

搜索:TimeCrontab NuGet包安装。

图片图片

快速入门

using TimeCrontab;

namespace TimeCrontabExercise
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //常规格式:分 时 天 月 周
            var crontab = Crontab.Parse("* * * * *");
            var nextOccurrence = crontab.GetNextOccurrence(DateTime.Now);

            //支持年份:分 时 天 月 周 年
            var crontab1 = Crontab.Parse("* * * * * *", CronStringFormat.WithYears);
            var nextOccurrence1 = crontab1.GetNextOccurrence(DateTime.Now);

            //支持秒数:秒 分 时 天 月 周
            var crontab2 = Crontab.Parse("* * * * * *", CronStringFormat.WithSeconds);
            var nextOccurrence2 = crontab2.GetNextOccurrence(DateTime.Now);

            //支持秒和年:秒 分 时 天 月 周 年
            var crontab3 = Crontab.Parse("* * * * * * *", CronStringFormat.WithSecondsAndYears);
            var nextOccurrence3 = crontab3.GetNextOccurrence(DateTime.Now);

            // Macro 字符串
            var secondly = Crontab.Parse("@secondly"); //每秒 [* * * * * *]
            var minutely = Crontab.Parse("@minutely"); //每分钟 [* * * * *]
            var hourly = Crontab.Parse("@hourly"); //每小时 [0 * * * *]
            var daily = Crontab.Parse("@daily"); //每天 00:00:00 [0 0 * * *]
            var monthly = Crontab.Parse("@monthly"); //每月 1 号 00:00:00 [0 0 1 * *]
            var weekly = Crontab.Parse("@weekly"); //每周日 00:00:00 [0 0 * * 0]
            var yearly = Crontab.Parse("@yearly"); //每年 1 月 1 号 00:00:00 [0 0 1 1 *]
            var workday = Crontab.Parse("@workday"); //每周一至周五 00:00:00 [0 0 * * 1-5]
        }
    }
}

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...