japan-calendar v0.1.2

「その日は祝日か」だけでなく「3営業日後はいつか」まで答える、 依存ゼロの TypeScript ライブラリです。そして まだ法的に確定していない祝日を、確定した祝日と同じ顔で返しません

このページの計算はすべてブラウザの中で実行しています。 入力した日付はどこにも送信しません。 ページを開いた直後に、npm 公開版の japan-calendar v0.1.2 (gzip 約 12 KB)を読み込みます。その後は何を入力しても リクエストは発生しません。祝日データはライブラリに焼き込まれていて、 実行時に取りに行きません。

読み込み後に発生した通信 0 件 操作しながらこの数字を見てください。増えなければ、日付はこの端末から出ていません。 ただしこれはページ自身が数えた値です——鵜呑みにしたくない場合は、 ブラウザの開発者ツール(F12)の Network タブを開いたまま操作すると、 同じことを外側から確認できます。

このデモの見方

どのボタンを押しても、確かめてほしいのは次の3つです。 各ボタンの下に「見どころ」を書いてあります。

  1. 「確定」と「暫定」のバッジが分かれているか。 春分の日と秋分の日は、国立天文台の暦要項が官報に載るまで法的に決まりません。 いま確定しているのは まで。 その先の日付は計算による予測なので、 このライブラリは confirmed: false を付けて返します。 予測を事実と同じ顔で返すライブラリは、外れた年に黙って間違えます
  2. 受け付けない入力を、黙って解釈していないか。 ここが本題です。 祝日ライブラリが日付を1日読み違えても、例外は出ません——違う日の答えが、 自信を持って返ってくるだけです。そのずれは営業日計算に乗ると増幅します。 いちばん下の「入力の受け口」で、 ありがちな書き方を片っ端から試した結果が見られます
  3. 入力が外に出ていないか。 上の「読み込み後に発生した通信」が 0 件 のまま動かないこと

ライブラリを読み込んでいます…

このライブラリが「しない」こと

使う

npm install japan-calendar@0.1.2
import { isHoliday, addBusinessDays, toWareki, formatWareki } from "japan-calendar";

isHoliday("2028-03-20");            // { name: "春分の日", confirmed: false, ... }
addBusinessDays("2026-12-30", 1, "bank");  // { year: 2027, month: 1, day: 4 }
formatWareki(toWareki("2019-05-01"));      // "令和元年5月1日"

依存ゼロ。データは全部同梱で、実行時に外部へ取りに行きません。 Node 20+ / ブラウザ / Cloudflare Workers で動きます。