首页 > 其他分享 >开源.NET 全能 Cron 表达式解析库(支持 Cron 所有特性)

开源.NET 全能 Cron 表达式解析库(支持 Cron 所有特性)

时间:2024-03-13 11:34:30浏览次数:28  
标签:Parse 00 Crontab Cron 开源 var NET

前言

今天大姚给大家分享一个.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]
        }
    }
}

项目源码地址

更多项目实用功能和特性欢迎前往项目开源地址查看

标签:Parse,00,Crontab,Cron,开源,var,NET
From: https://www.cnblogs.com/mq0036/p/18070265

相关文章

  • 开源.NET8.0小项目伪微服务框架(分布式、EFCore、Redis、RabbitMQ、Mysql等)
    1、前言为什么说是伪微服务框架,常见微服务框架可能还包括服务容错、服务间的通信、服务追踪和监控、服务注册和发现等等,而我这里为了在使用中的更简单,将很多东西进行了简化或者省略了。年前到现在在开发一个新的小项目,刚好项目最初的很多功能是比较通用的,所以就想着将这些功能......
  • C#版开源免费的Bouncy Castle密码库
    思维导航前言项目介绍BouncyCastle介绍项目源代码创建控制台应用安装BouncyCastle包BouncyCastle使用示例项目源码地址优秀项目和框架精选DotNetGuide技术社区交流群前言今天大姚给大家分享一款C#版开源、免费的BouncyCastle密码库:BouncyCastle。项目介绍B......
  • 《安富莱嵌入式周报》第334期:开源SEM扫描电子显微镜,自制编辑器并搭建嵌入式环境,免费产
    周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 视频版:https://www.bilibili.com/video/BV1om411Z714/目录1、开源SEM扫描电子显微镜,数字图像采集解决方案2、Microchip专家为客户提供免费的产品设计审查服务3、开源植......
  • Rust 构建开源 Pingora 框架可以与nginx媲美
    一、概述Cloudflare为何弃用Nginx,选择使用Rust重新构建新的代理Pingora框架。Cloudflare成立于2010年,是一家领先的云服务提供商,专注于内容分发网络(CDN)和分布式域名解析。它提供一系列安全和性能优化服务,包括防火墙、DDoS防护、SSL/TLS加密和威胁分析。二、Pingora......
  • 运维必备的开源多功能监控系统
    项目地址https://github.com/dromara/hertzbeat项目介绍HertzBeat是一个无需Agent、高性能、易扩展、功能强大的开源实时监控告警系统,无需Agent、高性能、易扩展、功能强大,由Dromara团队开发并开源,能够帮我们轻松监控应用、服务、基础设施等各种资源的运行状况。特......
  • C#版开源免费的Bouncy Castle密码库
    前言今天大姚给大家分享一款C#版开源、免费的BouncyCastle密码库:BouncyCastle。项目介绍BouncyCastle是一款C#版开源、免费的BouncyCastle密码库,开发人员可以通过该项目在他们的C#应用程序中使用BouncyCastle提供的各种密码学功能,从而加强数据的安全性和保护隐私信息。......
  • .Net 面试题总结
    WPF和WinForm区别WPF:分辨率自适应,属性binding,有事件路由、命令绑定、数据模板数据模板等特性,前后分离,可创建样式动画,页面比WinForm更炫酷WinForm:自适应差,label控件不可设置透明背景区别WPFWinForm句柄整个窗口为一个句柄窗口中每个控件都是一个句柄渲染使......
  • .NET CORE微服务之Polly
     概念Polly是一个被.net基金会支持认可的框架,Polly是一个.NET弹性和瞬态故障处理库,允许开发人员以流畅和线程安全的方式表达策略,如重试、断路器、超时、舱壁隔离和回退。Polly的7种策略Polly是一个.NETCore中的弹性和瞬态故障处理库,它提供了多种策略来处理服务故障,确保系......
  • 命令行 要查看在Windows上已安装的所有.NET Framework版本 查看在Windows上已安装的
       要查看在Windows上已安装的所有.NETFramework版本,可以按照以下步骤执行:打开命令提示符(CommandPrompt)或PowerShell。可以通过在Windows搜索栏中键入“cmd”或“PowerShell”来找到并打开这些应用程序。在命令提示符或PowerShell中,输入以下命令并按Enter键:......
  • CANopen转Profinet网关连接西门子PLC与变流器通讯
    CANopen转Profinet网关连接西门子PLC与变流器通讯CANopen转Profinet网关(XD-COPNm20)在智能领域,变流器的应用非常广泛,变流器一般会采用CANopen协议。现场采用台达的变流器(支持CANopen协议)作为CANopen从站,S7-1500系列PLC做主站,通过CANopen转Profinet网关(XD-COPNm20)连接变流器与PLC。......