NuGet 套件

Ozakboy.TaiwanKit.TaiwanHolidays — 台灣假日查詢套件

台灣國定假日/補班日查詢的 .NET 套件:官方行事曆 2017~2027 內嵌、補班週六正確判斷、排程輔助齊全,離線可用、零依賴。

Ozakboy.TaiwanKit 系列套件之一——以官方行事曆為準的台灣假日/工作日查詢函式庫。

相關連結

dotnet add package Ozakboy.TaiwanKit.TaiwanHolidays

專案背景

「這天要不要上班」看似簡單,實際上台灣的行事曆有補假、彈性放假、補班的週六等規則,光看週末會算錯。而且 2025 年《紀念日及節日實施條例》通過後新增了多個放假日,前後年度的假日集合並不相同。本套件直接內嵌人事行政總處的官方「政府行政機關辦公日曆表」,把這些規則一次處理好。

主要功能

基本查詢

IsHoliday / IsWorkday / GetDayInfo,六種日型分類(工作日、例假日、國定假日、補假、彈性放假、補行上班)。補班的週六正確判為工作日——這是與「只看週末」的關鍵差異。單日資訊附官方假日名稱(中英雙語)。

排程輔助

  • 下一個 / 上一個工作日(跨連假)
  • 區間工作日計算(含頭尾)
  • 連假查詢:自動找出 3 天以上連續假期(如 2026 春節 9 天連假),跨年連假在兩個年度都完整呈現

範圍語意

資料涵蓋 2017-01-01 ~ 2027-12-31。超出範圍的查詢一律拋例外(絕不用週末猜測),另提供 TryGetDayInfoMinDate/MaxDate 供優雅處理;net8+ 提供 DateOnly 多載。

技術架構

  • 資料工程:官方 CSV(政府資料開放平臺 dataset 14718)→ 自製轉換器(自動處理 UTF-8/Big5 編碼混用)→ 內嵌 C# 資料表,每個年度標注來源公告
  • 多框架netstandard2.0 / netstandard2.1 / net8.0 / net9.0 / net10.0,零執行期依賴
  • 品質保證:50 項 xUnit 測試,年度分類數以官方統計為準、春節初一等錨點為獨立事實,雙軌防止轉換回歸;全框架建置零警告
  • 長期維運:每年約 5~6 月官方公告次年行事曆後,以 Minor 版釋出新年度資料
  • 雙語文件:README 與線上文件皆中英雙語,介紹網站以 Nuxt 4 靜態產生、部署於 GitHub Pages

功能亮點

  • 官方資料內嵌:人事行政總處辦公日曆表 2017~2027,離線可用、零依賴
  • 補班日正確判斷:六種日型分類,補行上班的週六正確判為工作日
  • 已含 2025《紀念日及節日實施條例》新制假日(教師節、光復節、行憲紀念日等)
  • 排程輔助:下一個/上一個工作日、區間工作日計算(含頭尾)
  • 連假查詢:自動找出 3 天以上連續假期,跨年連假不截斷
  • 明確範圍語意:超出涵蓋年份一律拋例外,另有 TryGetDayInfo 與 DateOnly 多載