Nager.Date is a Date/Calendar Framework for .NET
- Public holiday calculation for every year, based on easter sunday, country and county support. Supports over 90 countries.
- Weekend information (supports 120 countries)
- Age calculation
If your country is not supported, fork me, implement it and send me the pull request.
The package is available on nuget
PM> install-package Nager.Date
If this project help you reduce time to develop, you can give me a beer 🍺
var publicHolidays = DateSystem.GetPublicHoliday("DE", 2017);
foreach (var publicHoliday in publicHolidays)
{
//publicHoliday...
//publicHoliday.Date -> The date
//publicHoliday.LocalName -> The local name
//publicHoliday.Name -> The english name
//publicHoliday.Fixed -> Is this public holiday every year on the same date
//publicHoliday.Global -> Is this public holiday in every county (federal state)
//publicHoliday.Counties -> Is the public holiday only valid for a special county ISO-3166-2 - Federal states
//publicHoliday.Type -> Public, Bank, School, Authorities, Optional, Observance
}
var startDate = new DateTime(2016, 5, 1);
var endDate = new DateTime(2018, 5, 31);
var publicHolidays = DateSystem.GetPublicHoliday(CountryCode.DE, startDate, endDate);
foreach (var publicHoliday in publicHolidays)
{
//publicHoliday...
}
var date = new DateTime(2017, 1, 1);
if (DateSystem.IsPublicHoliday(date, CountryCode.DE))
{
Console.WriteLine("Is public holiday");
}
var date = new DateTime(2017, 1, 1);
if (DateSystem.IsWeekend(date, CountryCode.DE))
{
Console.WriteLine("Is weekend");
}
var date = new DateTime(1900, 1, 1);
var age = DateSystem.GetAge(date);
The list of supported countries can be found on the wiki.
- telephone systems
- carrier (land transport)
- time recording
Mark Seemann - Simple holidays
Language | Project | Supported Countries (January 2019) |
---|---|---|
PHP | yasumi | 34 |
JavaScript | date-holidays | 142 |
Java | jollyday | 64 |
.NET | Holiday | 21 |
Python | python-holidays | 34 |
Python | workalendar | 59 |