Skip to main content
net10.0net8.0net9.0

๋Œ€ํ•œ๋ฏผ๊ตญ ๊ณตํœด์ผ(๋Œ€์ฒด๊ณตํœด์ผ ํฌํ•จ) ์กฐํšŒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ. ์šฐ์ฃผํ•ญ๊ณต์ฒญ ์›”๋ ฅ์š”ํ•ญ ๊ธฐ๋ฐ˜, ๋Ÿฐํƒ€์ž„ ์˜์กด์„ฑ ์—†์Œ.

Published
Jun 19, 2026
4mo ago
Total Downloads
131
131

Install

dotnet add package KoreanHolidays --version 0.1.0
ProductVersions
.NET
net10.0net8.0net9.0

README

KoreanHolidays

CI NuGet License: MIT

๋Œ€ํ•œ๋ฏผ๊ตญ ๊ณตํœด์ผ(๋Œ€์ฒด๊ณตํœด์ผ ํฌํ•จ)์„ ๋Ÿฐํƒ€์ž„ ์˜์กด์„ฑ ์—†์ด ์กฐํšŒํ•˜๋Š” .NET ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ. net8.0 / net9.0 / net10.0 ๋ฉ€ํ‹ฐํƒ€๊นƒ, ์™ธ๋ถ€ ์˜์กด์„ฑ ์—†์Œ(BCL only).

๋ฐ์ดํ„ฐ ์ถœ์ฒ˜: hyunbinseo/holidays-kr โ€” ์šฐ์ฃผํ•ญ๊ณต์ฒญ ๋ฐœํ‘œ ์›”๋ ฅ์š”ํ•ญ ๊ธฐ๋ฐ˜.

API ์š”์•ฝ

๋ฉค๋ฒ„ ์„ค๋ช…
IsPublicHoliday(DateOnly) ๊ณตํœด์ผ ์—ฌ๋ถ€ (๋ฏธ์ง€์› ์—ฐ๋„ โ†’ ArgumentOutOfRangeException)
GetHolidays(DateOnly) ํ•ด๋‹น ๋‚ ์งœ์˜ ๊ณตํœด์ผ ๋ชฉ๋ก (์—†์œผ๋ฉด ๋นˆ ๋ฆฌ์ŠคํŠธ)
TryGetHolidays(DateOnly, out โ€ฆ) ์˜ˆ์™ธ ์—†์ด ๋ถ„๊ธฐ โ€” ๋ฏธ์ง€์› ์—ฐ๋„/๋น„๊ณตํœด์ผ์ด๋ฉด false
GetHolidays(int year) ์—ฐ๋„ ์ „์ฒด ๊ณตํœด์ผ (๋‚ ์งœ ์˜ค๋ฆ„์ฐจ์ˆœ)
GetHolidaysInRange(DateOnly, DateOnly) ๊ธฐ๊ฐ„(์–‘๋ ํฌํ•จ) ๊ณตํœด์ผ (๋‚ ์งœ ์˜ค๋ฆ„์ฐจ์ˆœ)
MinYear / MaxYear / IsSupportedYear(int) ์ง€์› ๋ฒ”์œ„ (ํ˜„์žฌ 2018~2026)

์„ค์น˜

dotnet add package KoreanHolidays

์‚ฌ์šฉ

using System;
using System.Linq;
using KoreanHolidays;

// ๊ณตํœด์ผ ์—ฌ๋ถ€
KHolidays.IsPublicHoliday(new DateOnly(2026, 1, 1));  // true
KHolidays.IsPublicHoliday(new DateOnly(2026, 1, 2));  // false

// ๊ณตํœด์ผ ๋ช…์นญ๋“ค (๊ฐ™์€ ๋‚  ๋ณต์ˆ˜ ๊ฐ€๋Šฅ)
KHolidays.GetHolidays(new DateOnly(2025, 5, 5))
    .Select(h => h.Name);                              // ["์–ด๋ฆฐ์ด๋‚ ", "๋ถ€์ฒ˜๋‹˜ ์˜ค์‹  ๋‚ "]

// ๋Œ€์ฒด๊ณตํœด์ผ ์ •๋ณด
var sub = KHolidays.GetHolidays(new DateOnly(2026, 8, 17)).Single();
sub.IsSubstitute;    // true
sub.SubstituteFor;   // "๊ด‘๋ณต์ ˆ"

// ์˜ˆ์™ธ ์—†์ด ๋ถ„๊ธฐ (Try ํŒจํ„ด)
if (KHolidays.TryGetHolidays(new DateOnly(2026, 1, 1), out var holidays)) { /* ... */ }

// ์—ฐ๋„ / ๊ธฐ๊ฐ„ ์กฐํšŒ
KHolidays.GetHolidays(2026);
KHolidays.GetHolidaysInRange(new DateOnly(2026, 1, 1), new DateOnly(2026, 12, 31));

// ์ง€์› ๋ฒ”์œ„
KHolidays.MinYear;  // 2018
KHolidays.MaxYear;  // 2026
KHolidays.IsSupportedYear(2030);  // false

๋™์ž‘ ์ •์ฑ…

  • ์ž…๋ ฅ์€ ์‹œ๊ฐ„๋Œ€ ์—†๋Š” DateOnly๋กœ ๋ฐ›๋Š”๋‹ค. DateTime์—์„œ ๋ณ€ํ™˜: DateOnly.FromDateTime(kstDateTime).
  • ๋ฐ์ดํ„ฐ ๋ฒ”์œ„ ๋ฐ– ์—ฐ๋„๋Š” "๊ณตํœด์ผ ์—†์Œ"์ด ์•„๋‹ˆ๋ผ "์•Œ ์ˆ˜ ์—†์Œ"์œผ๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค. ๋‹จ์ • API(IsPublicHoliday, GetHolidays)๋Š” ArgumentOutOfRangeException์„ ๋˜์ง€๊ณ , TryGetHolidays๋Š” false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • 2026๋…„๋ถ€ํ„ฐ ๋…ธ๋™์ ˆ(5์›” 1์ผ)๊ณผ ์ œํ—Œ์ ˆ(7์›” 17์ผ)์ด ๋ฒ•์ •๊ณตํœด์ผ๋กœ ํฌํ•จ๋œ๋‹ค (2025๋…„ ๊ณตํœด์ผ๋ฒ• ๊ฐœ์ • ๋ฐ˜์˜).

๋ฐ์ดํ„ฐ ๊ฐฑ์‹ 

์›๋ณธ ๋ฆฌํฌ์˜ ์ƒˆ ์—ฐ๋„๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด:

# tools/HolidayData.Generator/data/ ์— ์ƒˆ YYYY.json ์ถ”๊ฐ€ ํ›„
dotnet run --project tools/HolidayData.Generator -- src/KoreanHolidays/Generated/HolidayData.g.cs

๋ผ์ด์„ ์Šค

MIT

Adoption Assessment

Assess this package against its supported frameworks, license, maintenance signals and dependency graph before making it a project standard.

Compatibility metadata lists 3 target frameworks; confirm the exact target used by your application.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.