Nuget安装

<PackageReference Include="CronExpressionDescriptor" Version="2.41.0" />
<PackageReference Include="CronExpressionDescriptor-zh-CN" Version="2.32.0" />
<PackageReference Include="Quartz" Version="3.14.0" />

Post 接口:Mock

using System.Diagnostics;
using CronExpressionDescriptor;
using Microsoft.AspNetCore.Mvc;
using Quartz;
using SaaS.OfficialWebSite.Web.Models;namespace SaaS.OfficialWebSite.Web.Controllers
{public class HomeController : Controller{private readonly ILogger<HomeController> _logger;public HomeController(ILogger<HomeController> logger){_logger = logger;}public IActionResult Index(){return View();}public IActionResult CronDescr(){return View();}[HttpPost]public IActionResult Mock(MockCronRequest cronRequest){var mockCronResponse = new MockCronResponse { Data = new MockCronModel { } };try{var cronDescription = CronExpressionDescriptor.ExpressionDescriptor.GetDescription(cronRequest.Cron, new Options(){DayOfWeekStartIndexZero = true,Use24HourTimeFormat = true,Locale = "zh-CN"});mockCronResponse.Data.CronDescription = cronDescription;var count = 10;// 计算并输出执行时间点var fireTimes = GetNextFireTimes(cronRequest.Cron, count);Console.WriteLine($"表达式: {cronRequest.Cron}");Console.WriteLine($"接下来 {count} 次执行时间点:");Console.WriteLine("-------------------------------");mockCronResponse.Data.NextTriggers = new List<string>();for (int i = 0; i < fireTimes.Count; i++){var next = $"{fireTimes[i]:yyyy-MM-dd HH:mm:ss.fff}";Console.WriteLine(next);mockCronResponse.Data.NextTriggers.Add(next);}mockCronResponse.Success = true;}catch (Exception ex){_logger.LogError(ex.Message, ex);mockCronResponse.Success = false;mockCronResponse.Message = ex.Message;}return Ok(mockCronResponse);}public static List<DateTimeOffset> GetNextFireTimes(string cronExpression, int count, DateTimeOffset? startTime = null){var results = new List<DateTimeOffset>();// 获取北京时间时区TimeZoneInfo chinaTimeZone = TimeZoneInfo.FindSystemTimeZoneById(OperatingSystem.IsWindows() ?"China Standard Time" :"Asia/Shanghai");// 设置起始时间为当前北京时间startTime ??= TimeZoneInfo.ConvertTime(DateTimeOffset.UtcNow, chinaTimeZone);// 创建Cron表达式解析器(指定北京时间时区)var cronTrigger = (ICronTrigger)TriggerBuilder.Create().WithCronSchedule(cronExpression, x => x.InTimeZone(chinaTimeZone)).Build();// 获取后续触发时间点DateTimeOffset? current = startTime;for (int i = 0; i < count; i++){current = cronTrigger.GetFireTimeAfter(current);if (!current.HasValue) break;// 确保时间点是北京时间results.Add(TimeZoneInfo.ConvertTime(current.Value, chinaTimeZone));}return results;}}
}

运行效果:Cron表达式生成器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/910206.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/910206.shtml
英文地址,请注明出处:http://en.pswp.cn/news/910206.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解锁数据宝藏:数据挖掘之数据预处理全解析

目录 一、引言&#xff1a;数据预处理 —— 数据挖掘的基石二、数据预处理的重要性2.1 现实数据的问题剖析2.2 数据预处理的关键作用 三、数据预处理的核心方法3.1 数据清洗3.1.1 缺失值处理3.1.2 离群点处理3.1.3 噪声处理 3.2 数据集成3.2.1 实体识别3.2.2 冗余处理3.2.3 数据…

React+Taro创建小程序

第一步&#xff1a;首先确认是否安装Node.js和npm 如果已安装Node.js和npm,以下可以查询 node -v npm -v 第二步&#xff1a;安装Taro CLI npm install -g tarojs/cli 第三步&#xff1a;创建项目 taro init my-react-taro-app 然后可以看到&#xff0c;下图 第四步&…

佳能Canon TS3100 Series打印机信息

打印功能 打印速度&#xff1a;黑白约 7.7 页 / 分钟&#xff0c;彩色约 4 页 / 分钟。打印分辨率&#xff1a;最高可达 48001200dpi&#xff0c;墨滴最小间距为 1/4800 英寸&#xff0c;能够保证高质量的输出&#xff0c;使文字清晰、色彩鲜艳。打印宽度&#xff1a;203.2 毫米…

家用电脑搭建可外网访问的网站服务器操作流程

在互联网时代&#xff0c;拥有一个属于自己的网站是展示个人风采、分享知识经验、开展线上业务的绝佳方式。你是否想过&#xff0c;利用家中闲置的电脑&#xff0c;就能搭建出一个可以被外网访问的网站服务器&#xff1f;这不仅能满足个性化需求&#xff0c;还能节省租用专业服…

CSS知识补充 --- 控制继承

每天学习一点点&#xff01;&#xff01;&#xff01; 总所周知&#xff0c;CSS某些属性可以继承&#xff0c;然后今天看到MDN的时候看到了CSS也可以控制继承&#xff0c;感觉很有意思&#xff0c;所以记录一下&#xff1a; 控制继承有5个属性值&#xff0c;分别&#xff1a;in…

如何使用Ant Design Blazor组件在列表页弹窗增加修改数据

在winform中首次使用net8做页面。列表页想使用Ant Design组件的弹窗组件实现。但第一次在winform项目中使用ant design组件&#xff0c;列表页面&#xff0c;点击新增&#xff0c;或者编辑操作实现弹窗页面&#xff0c;弹窗页面想使用模板页razor页来实现&#xff0c;而不是用m…

嵌入式学习 51单片机01

一、框架 1、CPU&#xff08;Central Processing Unit&#xff0c;中央处理单元&#xff09;‌是计算机的核心部件&#xff0c;负责执行计算机指令和处理数据。 2、MCU&#xff08;Microcontroller Unit&#xff0c;微控制单元&#xff09;‌是一种将中央处理器、内存、输入输出…

C语言之内存对齐

一、为什么要内存对齐 Arm对内存的访问支持字&#xff08;4byte&#xff09;、半字&#xff08;2byte&#xff09;、字节&#xff08;1byte&#xff09;的直接访问&#xff0c;但是呢他们是有一定的要求的&#xff1a; 存取字时要求地址按字对齐&#xff0c;也就是地址要是4的…

Python 基础语法 -----函数

一、函数 1、函数是什么 编程中的函数和数学中的函数有一定的相似之处。 数学上的函数&#xff0c;比如 y sin x&#xff0c;x 取不同的值&#xff0c;y 就会得到不同的结果。 编程中的函数是一段可以被重复使用的代码片段。 &#xff08;1&#xff09;求数列的和&#x…

Windows/Linux系统 Ollama部署deepseek 大模型

Ollama 是一个开源工具&#xff0c;专门用于在本地计算机上运行和操作大型语言模型&#xff08;LLM&#xff09; 官方下载网站&#xff08;https://ollama.ai/&#xff09; Windows系统安装方法 建议命令行安装&#xff08;默认安装会直接安装到C盘&#xff09; OllamaSetu…

用Tensorflow进行线性回归和逻辑回归(一)

这一章告诉你如何用TensorFlow构建简单的机器学习系统。第一部分回顾构建机器学习系统的基础特别是讲函数&#xff0c;连续性&#xff0c;可微性。接着我们介绍损失函数&#xff0c;然后讨论机器学习归根于找到复杂的损失函数最小化的点的能力。我们然后讲梯度下降&#xff0c;…

java/.net跨平台UI浏览器SDK,浏览器控件开发包分析

在 Linux 系统中&#xff0c;虽然没有完全等同于安卓 WebView 的内置浏览器 SDK&#xff0c;但存在多种基于开源浏览器引擎的解决方案&#xff0c;支持通过 Java 代码控制网页加载和执行 JavaScript。以下是具体实现方案和技术细节&#xff1a; 一、核心技术方案对比 方案名称…

Taro 状态管理全面指南:从本地状态到全局方案

在跨端应用开发中&#xff0c;状态管理是构建可维护、可扩展应用的核心环节。作为京东凹凸实验室推出的多端统一开发框架&#xff0c;Taro 支持 React/Vue 等主流前端框架&#xff0c;自然也继承了丰富的状态管理生态。本文将全面剖析 Taro 中的各种状态管理方案&#xff0c;从…

记录一下jar做成windows服务问题

1、打包好jar 2、把jdk防止到和jar同一目录下 3、下载winsw-x64.exe 和 sample-minimal.xml https://github.com/winsw/winsw/releases/download/v2.12.0/WinSW-x64.exehttps://github.com/winsw/winsw/releases/download/v2.12.0/WinSW-x64.exe sample-minimal.xmlhttps://…

【Dify 案例】【MCP实战】【二】【超级助理】

我们创建一个工作流。你是一个超级助理,能够根据输入的指令,进行推理和自主调用工具,完成并输出结果。 注意,需要判断是否调用高德MCP来获取对应工具协助你完成任务。 1.开始 2.策略大脑 2.1 AEGNT策略 2.2 工具列表 2.3 指令

Qt Quick 与 QML(二)qml中的顶级窗口

一、前言 在QML中&#xff0c;‌顶级窗口不是绝对必需的‌&#xff0c;但它在大多数应用场景中扮演着关键角色。 需要顶级窗口的典型场景&#xff1a; 1.独立桌面/移动应用‌ 必须使用Window或ApplicationWindow作为根元素。 2.多窗口应用 每个独立窗口都需要一个顶级窗口实例…

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 免费服务开通全流程与Rest API和OpenAI SDK调用详解

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 免费服务开通全流程与Rest API和OpenAI SDK调用详解 前言 本文将详细介绍DeepSeek-V3/R1 免费服务开通全流程&#xff0c;并且详细讲解通过本地方式Rest API和OpenAI SDK两种方式调用DeepSeek-V3/R1 前提准备 1、访问 Mod…

Qt 连接信号使用lambda表达式和槽函数的区别

1. 语法与代码结构 成员函数 需在类中显式声明槽函数&#xff08;public slots: 或 Qt 5 后的任意成员函数&#xff09;&#xff0c;并在连接时指定接收对象。 class Receiver : public QObject {Q_OBJECT public slots:void handleSignal(int value) { /* ... */ } };// 连接…

学习笔记丨AR≠VR:透视沉浸式技术的“虚实象限”法则

AR&#xff08;增强现实&#xff09;和VR&#xff08;虚拟现实&#xff09;是沉浸式技术的两大分支&#xff0c;核心区别在于虚拟与现实的融合程度。以下是两者的详细对比&#xff1a; 对比维度 AR&#xff08;增强现实&#xff09; VR&#xff08;虚拟现实&#xff09; 技术…

本地使用 modelscope 大模型 来进行文本生成视频(Text-to-Video)

1. ✅ 创建并激活 Conda 环境&#xff08;Python 3.8&#xff09; conda create -n modelscope python3.8 -yconda activate modelscope 2.✅ 安装了 PyTorch&#xff08;CPU 版本&#xff09; 如果你是 CPU-only 用户&#xff08;没有 NVIDIA 显卡 或不想用 GPU&#xff0…