Sparkdo.Crontab
2.0.0-preview.2
dotnet add package Sparkdo.Crontab --version 2.0.0-preview.2
NuGet\Install-Package Sparkdo.Crontab -Version 2.0.0-preview.2
<PackageReference Include="Sparkdo.Crontab" Version="2.0.0-preview.2" />
<PackageVersion Include="Sparkdo.Crontab" Version="2.0.0-preview.2" />
<PackageReference Include="Sparkdo.Crontab" />
paket add Sparkdo.Crontab --version 2.0.0-preview.2
#r "nuget: Sparkdo.Crontab, 2.0.0-preview.2"
#:package Sparkdo.Crontab@2.0.0-preview.2
#addin nuget:?package=Sparkdo.Crontab&version=2.0.0-preview.2&prerelease
#tool nuget:?package=Sparkdo.Crontab&version=2.0.0-preview.2&prerelease
Sparkdo.Crontab
Sparkdo.Crontab 是 .NET 10 的 AOT 友好 Cron 表达式解析与 occurrence 计算库。它提供规则的解析、验证、Next、Previous 和 Between,但不执行后台任务或维护调度状态。
dotnet add package Sparkdo.Crontab
using Sparkdo.Crontab;
var cron = Cron.Parse("*/15 * * * *");
var next = cron.Next(new DateTimeOffset(2026, 1, 1, 0, 7, 0, TimeSpan.Zero));
默认格式为“分 时 日 月 周”;可通过 CronFormat.Seconds、Years 或 SecondsAndYears 使用秒和年份字段。字段支持通配符、列表、范围、步长、月份/星期英文名称,以及 L、LW、W、#、nL、R。
var workdayMorning = Cron.Parse("0 9 ? * MON-FRI");
var lastWeekday = Cron.Parse("0 0 LW * *");
var secondMonday = Cron.Parse("0 9 * * MON#2");
日与星期字段使用 AND 关系,星期 0 和 7 都表示周日。Next、Previous 和 Between 默认排除边界;通过 CronOptions.Boundary 可包含起点、终点或两端。
默认按 DateTimeOffset.Offset 计算固定 offset。需要本地时间或 DST 策略时,显式传入 TimeZoneInfo:
var timeZone = TimeZoneInfo.FindSystemTimeZoneById("Asia/Shanghai");
var options = CronOptions.InTimeZone(timeZone);
var next = Cron.DailyAt(9).Next(DateTimeOffset.UtcNow, options);
CronOptions 可控制 DST 无效时间的跳过或前移,以及歧义时间的较早、较晚或双 occurrence 策略。外部输入使用 Cron.TryParse 或 Cron.IsValid 验证;Cron.Parse 的失败会抛出包含表达式、字段、位置和原因的 CronParseException。
完整语法、时间语义、预设与验证命令见仓库 src/crontab/README.md。
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Sparkdo.Crontab:
| Package | Downloads |
|---|---|
|
Sparkdo.Scheduler
Sparkdo Scheduler runtime package and embedded source generator asset. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.0.0-preview.2 | 55 | 7/20/2026 |
| 2.0.0-preview.1 | 50 | 7/18/2026 |