Mamemaki.HolidayJp
1.0.4
dotnet add package Mamemaki.HolidayJp --version 1.0.4
NuGet\Install-Package Mamemaki.HolidayJp -Version 1.0.4
<PackageReference Include="Mamemaki.HolidayJp" Version="1.0.4" />
paket add Mamemaki.HolidayJp --version 1.0.4
#r "nuget: Mamemaki.HolidayJp, 1.0.4"
// Install Mamemaki.HolidayJp as a Cake Addin #addin nuget:?package=Mamemaki.HolidayJp&version=1.0.4 // Install Mamemaki.HolidayJp as a Cake Tool #tool nuget:?package=Mamemaki.HolidayJp&version=1.0.4
Mamemaki.HolidayJp
.NET library for Calculate Japan public Holidays
- Purely holiday calculator.
- No dataset or other external resources used
- No dependencies
- Support 1955 to 2150 years range
- Tested with syukujitsu.csv
Install
Install with NuGet:
PM> Install-Package Mamemaki.HolidayJp
Example Usage
Calculate public holidays of a year
var holidays = HolidayCalculator.GetHolidaysInYear(2019);
foreach (var holiday in holidays)
{
Console.WriteLine($"[{holiday.Date.ToString("yyyy/MM/dd")}] {holiday.Name}");
}
Get public holidays for a date range
var jphol = new JapanHoliday();
var startDate = new DateTime(2016, 5, 1);
var endDate = new DateTime(2018, 5, 31);
var holidays = jphol.GetHolidaysInDateRange(startDate, endDate);
foreach (var holiday in holidays)
{
Console.WriteLine($"[{holiday.Date.ToString("yyyy/MM/dd")}] {holiday.Name}");
}
Get public holiday for a date
var jphol = new JapanHoliday();
var date = new DateTime(2019, 1, 1);
var holiday = jphol.GetHoliday(date);
if (holiday != null)
{
Console.WriteLine($"[{holiday.Date.ToString("yyyy/MM/dd")}] {holiday.Name}");
}
else
{
Console.WriteLine($"{date.ToString("yyyy/MM/dd")} is not public holiday");
}
Check if a date is a weekend/weekday/holiday/workingday day
var jphol = new JapanHoliday();
var date = new DateTime(2019,11,8);
Console.WriteLine($"{date.ToString("yyyy/MM/dd")} is {(jphol.IsWeekday(date) ? "weekday" : "not weekday")}");
Console.WriteLine($"{date.ToString("yyyy/MM/dd")} is {(jphol.IsWeekend(date) ? "weekend" : "not weekend")}");
Console.WriteLine($"{date.ToString("yyyy/MM/dd")} is {(jphol.IsHoliday(date) ? "holiday" : "not holiday")}");
Console.WriteLine($"{date.ToString("yyyy/MM/dd")} is {(jphol.IsWorkingDay(date) ? "workingday" : "not workingday")}");
Console.WriteLine($"{date.ToString("yyyy/MM/dd")}'s next workingday is {jphol.NextWorkingDay(date).ToString("yyyy/MM/dd")}");
Console.WriteLine($"{date.ToString("yyyy/MM/dd")}'s previous workingday is {jphol.PreviousWorkingDay(date).ToString("yyyy/MM/dd")}");
API References
Holiday object
Name | Description |
---|---|
Date |
Date of the holiday. |
Kind |
Kind of the holiday. see HolidayKind. |
Name |
Name of the holiday in Japanese. |
GlobalName |
Name of the holiday in English. |
HolidayKind enum
Name | Description |
---|---|
National |
国民の祝日 |
Citizens |
国民の休日 |
Substitute |
振替休日 |
HolidayCalculator class
This class is to calculate japan holidays. it has only one public method GetHolidaysInYear(int year)
that calculates holidays in the specified year.
JapanHoliday class
This class has many utility methods for Japan holidays. And calculated results are cached so calculation does not execute twice.
Methods
IEnumerable<Holiday> GetHolidaysInYear(int year)
Get holidays in the specified year.
IEnumerable<Holiday> GetHolidaysInDateRange(DateTime dateStart, DateTime dateEnd)
Get public holidays for a date range.
Holiday GetHoliday(DateTime date)
Get holidays in the specified year.
bool IsHoliday(DateTime date)
Check if a date is a public holiday.
bool IsWeekday(DateTime date)
Check if a date is a weekday. weekday means Monday to Friday.
bool IsWeekend(DateTime date)
Check if a date is a weekend weekend means Saturday or Sunday.
bool IsWorkingDay()
Check if today is a working day. working day means Monday to Friday and does not holiday.
bool IsWorkingDay(DateTime date)
Check if a date is a working day. working day means Monday to Friday and does not holiday.
DateTime NextWorkingDay(DateTime date)
Get next working day of the specified date. working day means Monday to Friday and does not holiday.
DateTime PreviousWorkingDay(DateTime date)
Get previous working day of the specified date. working day means Monday to Friday and does not holiday.
Thanks
https://zariganitosh.hatenablog.jp/entry/20140929/japanese_holiday_memo
https://www.pahoo.org/e-soul/webtech/php02/php02-27-01.shtm
https://www.atmarkit.co.jp/ait/articles/1507/22/news024.html
License
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.