Frank.CronJobs.Cron
2.0.8-preview
See the version list below for details.
dotnet add package Frank.CronJobs.Cron --version 2.0.8-preview
NuGet\Install-Package Frank.CronJobs.Cron -Version 2.0.8-preview
<PackageReference Include="Frank.CronJobs.Cron" Version="2.0.8-preview" />
paket add Frank.CronJobs.Cron --version 2.0.8-preview
#r "nuget: Frank.CronJobs.Cron, 2.0.8-preview"
// Install Frank.CronJobs.Cron as a Cake Addin #addin nuget:?package=Frank.CronJobs.Cron&version=2.0.8-preview&prerelease // Install Frank.CronJobs.Cron as a Cake Tool #tool nuget:?package=Frank.CronJobs.Cron&version=2.0.8-preview&prerelease
Frank.CronJobs.Cron
Frank.CronJobs.Cron is a .NET library that provides cron expression parsing and scheduling capabilities. Its meant as an internal dependency for Frank.CronJobs, but works just fine as a CronParser
Features
- Parse cron expressions and validate syntax
- Calculate next occurrence datetime based on cron expression
- Determine if cron expression is due relative to specified datetime
- Helper methods for working with cron expressions
- Constants for common Cron Expressions
Usage
Parse and validate cron expression
string expression = "0 15 10 * * ?";
CronExpression cron = new CronExpression(expression);
bool isValid = cron.IsValid;
Calculate next occurrence
string expression = "0 15 10 * * ?";
DateTime next = CronExpression.GetNextOccurrence(expression);
Check if cron is due
string expression = "0 15 10 * * *";
DateTime dateTime = new DateTime(2023, 2, 15, 11, 0, 0);
bool isDue = CronExpression.IsDue(expression, dateTime); // true
Use helper methods
// Get next occurrence from current time
DateTime next = CronHelper.GetNextOccurrence(expression);
// Get time until next occurrence
TimeSpan timeToNext = CronHelper.GetTimeUntilNextOccurrence(expression);
// Check if due
bool isDue = CronHelper.IsDue(expression);
Use common cron expressions
string everySecond = PredefinedCronExpressions.EverySecond;
string everyMinute = PredefinedCronExpressions.EveryMinute;
string everyHour = PredefinedCronExpressions.EveryHour;
string everyDay = PredefinedCronExpressions.EveryDay;
string everyWeek = PredefinedCronExpressions.EveryWeek;
string everyMonth = PredefinedCronExpressions.EveryMonth;
string everyYear = PredefinedCronExpressions.EveryYear;
string everyYearOnChristmasEve = PredefinedCronExpressions.EveryYearOn.ChristmasEve;
Installation
Install the NuGet package directly from the package manager console:
PM> Install-Package Frank.CronJobs.Cron
License
Frank.CronJobs.Cron is licensed under the MIT license.
Contributing
Contributions, except for actual bug fixes, are not welcome at this time. This is an internal dependency for Frank.CronJobs, and though it is a standalone library, it is not meant to be developed as such. If you have a bug fix, please submit a pull with a test that demonstrates the bug and the fix.
Credits
This library is based on CronQuery, which I am a contributor to. This is built on that code to change it in a few ways to better suit my needs for Frank.CronJobs, and make it a standalone library so the lightweight cron parsing can be used in other projects as well with no dependencies.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Frank.CronJobs.Cron:
Package | Downloads |
---|---|
Frank.CronJobs
Frank.CronJobs is a library for running cron jobs in .NET Core applications. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2.0.9-preview | 95 | 7/11/2024 |
2.0.8-preview | 98 | 6/24/2024 |
2.0.0 | 169 | 2/3/2024 |
1.1.7-preview | 90 | 2/3/2024 |
1.1.6-preview | 107 | 1/29/2024 |
1.1.5-preview | 111 | 1/24/2024 |
1.1.0 | 139 | 1/21/2024 |
1.0.4-preview | 99 | 1/21/2024 |