Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tonguyenducmanh/cron-exp-generator
dựng cron expression theo mô hình builder pattern
https://github.com/tonguyenducmanh/cron-exp-generator
cronexpression csharp design-patterns postgresql
Last synced: 28 days ago
JSON representation
dựng cron expression theo mô hình builder pattern
- Host: GitHub
- URL: https://github.com/tonguyenducmanh/cron-exp-generator
- Owner: tonguyenducmanh
- Created: 2024-07-09T13:25:44.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-08-03T07:58:09.000Z (6 months ago)
- Last Synced: 2024-08-03T08:54:03.179Z (6 months ago)
- Topics: cronexpression, csharp, design-patterns, postgresql
- Language: C#
- Homepage:
- Size: 42 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# project thực hiện build ra biểu thức cron expression tuỳ chỉnh theo nhu cầu sử dụng riêng
```
-- cron_expression: tuân thủ biểu thức sau:
-- * * * * * * * * *
-- | | | | | | | | |
-- | | | | | | | | +-- End time (vd 2024-09-01)
-- | | | | | | | +---- Start time (vd 2024-04-01)
-- | | | | | | +------ Year (range: 1900-3000)
-- | | | | | +-------- Day of the week (range: 1-7, 1 = Sunday)
-- | | | | +---------- Month (range: 1-12)
-- | | | +------------ Day of the month (range: 1-31)
-- | | +-------------- Hour (range: 0-23)
-- | +---------------- Minute (range: 0-59)
-- +------------------ Second (range: 0-59)
-- các logic hỗ trợ gồm:
---- * : toàn bộ giá trị phù hợp
---- giá trị cụ thể : vd 12
---- range giá trị: vd 1-5
---- list giá trị: vd 1,2,3
---- step value: vd */10 với * là phút thì lấy các phút chia hết cho 10
---- end of month: vd L với day_of_month thì lấy ngày cuối cùng của tháng
---- => lưu ý từ này chỉ dùng cho day of month
------ các logic thêm mới không phải tiêu chuẩn mặc định của cron expresssion
---- end of month option : vd 30|L với day_of_month thì lấy ngày 30 của tháng, nếu tháng không có ngày 30 thì
---- lấy ngày cuối cùng của tháng ( chữ |L là tùy chỉnh riêng không theo chuẩn chung )
---- chỉ áp dụng cho các ngày 29,30,31 do không phải tháng nào cũng có
---- => lưu ý từ này chỉ dùng cho day of month
---- Start time : ngày bắt đầu
---- End time : ngày kết thúc
---- thứ tự ưu tiên ngày - năm giảm dần, các thứ tự ưu tiên giảm dần có thể bỏ```
Cách sử dụng
```
DateTime currentTime = new DateTime(2024, 02, 01);
CronExpressionModel cronExp = new CronExpressionBuilder()
.SetStartTimeAndEndtime(currentTime.AddDays(-30), currentTime)
.SetFrequently((int)EnumCronFrequently.Monthly)
.GetResult();
string cronExpression = cronExp.ToString();Assert.AreEqual(cronExpression, "* * * 2 * * * 2024-01-02 2024-02-01");
```