暦API
1900年から2100年までの毎日について、旧暦・六曜・干支・二十四節気・雑節・月齢・和暦を返すAPIです。カレンダーに六曜を添える、大安の日を拾う、その年の二十四節気を一覧にする、といったことが手軽にできます。
- できること
- 日ごとの 旧暦(閏月つき)・六曜・日の干支・二十四節気・雑節・月齢・月の満ち欠け・和暦 / 年ごとの 二十四節気と雑節の日時・新月と満月などの日時・年の干支
- 期間
- 1900年1月1日〜2100年12月31日(1年分を1つのファイルで返します)
- 費用・登録
- 無料・登録不要・APIキー不要(提供条件は利用状況で変わることがあります)
- 計算のもと
- NASA JPL の天体暦 DE440s。国立天文台の暦要項(2004〜2027年)と、二十四節気・雑節・朔弦望の日付がすべて一致
- 気をつけること
- 祝日は入っていません(祝日・営業日APIを併せて使ってください)。六曜・干支などは迷信・慣習としての参考情報です。
データの版は /koyomi/v1/meta.json で確認できます。
はじめかた(3ステップ)
- ブラウザで開いてみる: https://api.shirugear.com/koyomi/v1/2026.json を開くと、2026年の365日分の暦が返ります。URLの数字を調べたい年に変えるだけです。
- その日の1件を取り出す:
daysの中からdateが目当ての日付(例:"2026-11-01")のものを探します。使い方の例にそのまま使えるコードがあります。 - 利用規約を確かめる: 利用規約をご確認ください。登録や申し込みは要りません。
いろいろな言語から呼ぶ
サーバー側のプログラムやコマンドからも、URLを開くだけで使えます。1年分(約100KB、通信は圧縮されて約14KB)を1回で受け取れるので、手元に保存して使い回すと効率的です。
const res = await fetch("https://api.shirugear.com/koyomi/v1/2026.json");
const data = await res.json();
const day = data.days.find((d) => d.date === "2026-11-03");
console.log(day.rokuyo, "旧暦" + day.lunar.text); // 友引 旧暦9月24日curl -s https://api.shirugear.com/koyomi/v1/2026.json \
| jq '.days[] | select(.date == "2026-11-03") | {rokuyo, lunar: .lunar.text}'<?php
$data = json_decode(file_get_contents('https://api.shirugear.com/koyomi/v1/2026.json'), true);
foreach ($data['days'] as $day) {
if ($day['date'] === '2026-11-03') {
echo $day['rokuyo'], ' 旧暦', $day['lunar']['text'], "\n"; // 友引 旧暦9月24日
}
}import json
import urllib.request
url = "https://api.shirugear.com/koyomi/v1/2026.json"
with urllib.request.urlopen(url, timeout=10) as res:
data = json.load(res)
day = next(d for d in data["days"] if d["date"] == "2026-11-03")
print(day["rokuyo"], "旧暦" + day["lunar"]["text"]) # 友引 旧暦9月24日その場で試す
日付から暦を調べる
試しに:
| 和暦・曜日 | |
|---|---|
| 旧暦 | |
| 六曜 | |
| 日の干支 | |
| 二十四節気 | |
| 雑節 | |
| 月齢(正午) | |
| 年の干支 |
応答の JSON(その日の1件)を見る
年の二十四節気・雑節の一覧
時刻は日本時間(秒まで)。雑節の時刻は、太陽の黄経で決まる入梅・半夏生・土用入りだけにあります。
二十四節気
| 名前 | 読み | 黄経 | 日付 | 時刻 |
|---|
雑節
| 名前 | 日付 | 時刻 |
|---|
URLの一覧
どれも、URLを開く(GET)だけで JSON(UTF-8)が返ります。先頭は https://api.shirugear.com です。自分のサイトのJavaScriptから直接呼べます(CORS対応)。
| URL | 返すもの |
|---|---|
/koyomi/v1/{西暦4桁}.json | その年の毎日の暦と、二十四節気・雑節・月の満ち欠けの一覧。1900〜2100年。例: /koyomi/v1/2026.json |
/koyomi/v1/meta.json | データの版・作った日時・期間・計算のもと・日数 |
- 年は半角数字4桁の西暦で指定します(
2026)。和暦や2桁の年は使えません。 - 1日分・1か月分だけを返すURLはありません。年のファイル(約100KB、圧縮して約10KB)を一度取り、その中から引いてください。
- 祝日・休日は入っていません。祝日・営業日APIの同じ年のファイルと、日付で突き合わせて使ってください。
- 呼び出しは
GET(またはHEAD)だけです。独自のヘッダを付けずに呼んでください。
コマンドラインからは、たとえば次のようにその日の1件を取り出せます(jq を使う例)。
curl -s https://api.shirugear.com/koyomi/v1/2026.json | jq '.days[] | select(.date == "2026-11-01")'
応答の例と各項目
応答の例
GET https://api.shirugear.com/koyomi/v1/2026.json
{
"year": 2026,
"wareki": "令和8年",
"kanshi": "丙午",
"kanshi_kana": "ひのえうま",
"days": [
…
{
"date": "2026-02-17",
"weekday": "火",
"wareki": "令和8年",
"lunar": { "year": 2026, "month": 1, "day": 1, "leap": false, "text": "1月1日" },
"rokuyo": "先勝",
"kanshi": "壬戌",
"kanshi_kana": "みずのえいぬ",
"sekki": null,
"zassetsu": [],
"moon_age": 29.3,
"moon_phase": "新月"
},
…
],
"solar_terms": [
{ "name": "小寒", "kana": "しょうかん", "longitude": 285, "date": "2026-01-05", "at": "2026-01-05T17:23:09+09:00" },
…
],
"zassetsu": [
{ "name": "土用入り", "season": "冬", "label": "冬の土用入り", "date": "2026-01-17", "at": "2026-01-17T12:03:09+09:00" },
{ "name": "土用の丑の日", "season": "冬", "label": "冬の土用の丑の日", "date": "2026-01-27" },
{ "name": "節分", "label": "節分", "date": "2026-02-03" },
…
],
"moon_phases": [
{ "name": "満月", "date": "2026-01-03", "at": "2026-01-03T19:02:55+09:00" },
…
],
"data_version": "2026-11-01"
}
2026年2月17日は旧暦の1月1日(旧正月)です。新月の瞬間は21時01分で、月齢は正午の値なので、この日は 29.3 になっています(月齢と月の満ち欠け)。
年の項目
年の項目の一覧を開く(9項目)
| 項目 | 型 | 内容 |
|---|---|---|
year | 数値 | 西暦の年 |
wareki | 文字列 | 和暦の年(例: 「令和8年」)。年の途中で元号が変わる年は、両方を「・」でつなぎます(例: 1989年は「昭和64年・平成元年」、2019年は「平成31年・令和元年」) |
kanshi | 文字列 | 年の干支(例: 「丙午」)。1月1日で切り替えます(干支と和暦) |
kanshi_kana | 文字列 | 年の干支の読み(ひらがな。例: 「ひのえうま」) |
days | 配列 | 1月1日から12月31日までの毎日(365件、うるう年は366件)。日付の順(下の表) |
solar_terms | 配列 | その年の二十四節気(24件・日付の順)。name(名前)・kana(読み)・longitude(太陽の黄経・度)・date(日付)・at(時刻・秒まで) |
zassetsu | 配列 | その年の雑節(日付の順)。name(名前)・season(季節「春」「夏」「秋」「冬」。季節の無い雑節では項目ごと無し)・label(表示用の名前)・date(日付)・at(時刻。太陽の黄経で決まる入梅・半夏生・土用入りだけ。ほかは項目ごと無し) |
moon_phases | 配列 | その年の新月・上弦・満月・下弦(日付の順)。name(「新月」「上弦」「満月」「下弦」)・date(日付)・at(時刻・秒まで) |
data_version | 文字列 | データの版(データの更新) |
日付はすべて "YYYY-MM-DD"、時刻はすべて日本時間の "YYYY-MM-DDTHH:MM:SS+09:00"(ISO 8601)です。
days の各項目(1日分)
1日分の項目の一覧を開く(15項目)
| 項目 | 型 | 内容 |
|---|---|---|
date | 文字列 | 日付("2026-02-17") |
weekday | 文字列 | 曜日(「日」「月」「火」「水」「木」「金」「土」) |
wareki | 文字列 | その日の和暦の年(例: 「令和8年」「平成元年」)。元号はその日に使われていたもの |
lunar.year | 数値 | 旧暦の年。旧暦の1月1日がある西暦の年で数えます。旧正月より前の日は前の年(例: 2026年1月1日は 2025) |
lunar.month | 数値 | 旧暦の月(1〜12)。閏月も同じ番号です(閏11月なら 11) |
lunar.day | 数値 | 旧暦の日(1〜30) |
lunar.leap | 真偽値 | 閏月なら true |
lunar.text | 文字列 | 表示用(「1月1日」「閏11月1日」) |
rokuyo | 文字列 | 六曜(「先勝」「友引」「先負」「仏滅」「大安」「赤口」) |
kanshi | 文字列 | 日の干支(例: 「壬戌」) |
kanshi_kana | 文字列 | 日の干支の読み(ひらがな。例: 「みずのえいぬ」) |
sekki | 文字列/null | その日に入る二十四節気(例: 「立春」)。無ければ null |
zassetsu | 文字列の配列 | その日の雑節の表示用の名前(年の zassetsu の label。例: ["夏の土用の丑の日"])。無ければ []。まれに2つ重なります |
moon_age | 数値 | 月齢。その日の正午(日本時間)の、直前の新月からの経過日数(小数1桁。0.0〜29.9) |
moon_phase | 文字列/null | その日に新月・上弦・満月・下弦の瞬間があれば、その名前。無ければ null |
days は1月1日から順に並んでいるので、その年の何日目かが分かれば番号でも引けます(1月1日が days[0])。
旧暦と六曜の決め方(2033年問題)
旧暦は、明治5年(1872年)まで使われていた太陰太陽暦(天保暦)の決め方に沿って、天文計算から求めています。旧暦はいまの日本では公式に定められた暦ではありません。作り手によって細かな決め方が違うため、市販のカレンダーなどと食い違うことがあります。
旧暦の決め方
- 月の始まり: 新月(朔)の瞬間がある日(日本時間)を、旧暦の月の1日とします。次の新月の日の前日までがその月です(29日か30日)。
- 月の番号: 冬至を含む月を11月とします。そこから順に12月・1月…と数えます。
- 閏月: 冬至を含む月から次の冬至を含む月までが13か月あるときは、その間で中気(太陽の黄経が30°の倍数になる二十四節気)を含まない最初の月を閏月とし、前の月と同じ番号にします(例: 6月の次の閏月は「閏6月」)。
- 旧暦の年: 旧暦の1月1日(旧正月)がある西暦の年で数えます。旧正月より前の日は、前の年の11月・12月です。
2033年問題
2033年の秋から2034年の春にかけては、天保暦の決め方をそのまま当てはめると、月の名前が一通りに決まりません。これを「旧暦2033年問題」と呼びます。
- このAPIでは、上の決め方のとおり、2033年12月22日からの月を閏11月としています。日本カレンダー暦文化振興協会の見解と同じです。
- ほかに、閏7月とする暦や、2034年の閏1月とする暦もあります。方式によって、2033年秋から2034年春にかけての旧暦の日付と六曜が違います。
- 大事な予定にこの期間の旧暦・六曜を使うときは、使う暦がどの方式かを確かめてください。
六曜の決め方
六曜は、旧暦の月と日から決まります。(旧暦の月 + 旧暦の日)を6で割った余りで次のように決めます。閏月は同じ番号の月として数えます(閏11月は11月と同じ)。
| 余り | 六曜 | 読み(よく使われるもの) |
|---|---|---|
| 0 | 大安 | たいあん |
| 1 | 赤口 | しゃっこう |
| 2 | 先勝 | せんしょう |
| 3 | 友引 | ともびき |
| 4 | 先負 | せんぶ |
| 5 | 仏滅 | ぶつめつ |
このため、旧暦の各月の1日は決まった六曜から始まります(1月・7月は先勝、2月・8月は友引、3月・9月は先負、4月・10月は仏滅、5月・11月は大安、6月・12月は赤口)。旧暦の月が変わる日は、六曜の並びが途中で飛びます。
六曜・干支などの暦注は、迷信・慣習としての参考情報です。科学的な根拠を示すものではありません。
二十四節気と雑節
二十四節気
太陽の通り道(黄道)を15°ずつ24に分け、太陽がそれぞれの角度(黄経)に来た瞬間を二十四節気とします。sekki にはその瞬間がある日(日本時間)に名前が入り、年の solar_terms には秒までの時刻が入ります。黄経が30°の倍数のもの(春分・穀雨・小満…)を「中気」と呼び、旧暦の月の番号を決めるのに使います。
二十四節気の一覧を開く(24行)
| 名前 | 読み | 太陽の黄経 | 日付のめやす(2000〜2100年) |
|---|---|---|---|
| 小寒 | しょうかん | 285° | 1月4〜6日 |
| 大寒 | だいかん | 300°(中気) | 1月19〜21日 |
| 立春 | りっしゅん | 315° | 2月3〜4日 |
| 雨水 | うすい | 330°(中気) | 2月18〜19日 |
| 啓蟄 | けいちつ | 345° | 3月4〜6日 |
| 春分 | しゅんぶん | 0°(中気) | 3月19〜21日 |
| 清明 | せいめい | 15° | 4月4〜5日 |
| 穀雨 | こくう | 30°(中気) | 4月19〜20日 |
| 立夏 | りっか | 45° | 5月4〜6日 |
| 小満 | しょうまん | 60°(中気) | 5月20〜21日 |
| 芒種 | ぼうしゅ | 75° | 6月4〜6日 |
| 夏至 | げし | 90°(中気) | 6月20〜22日 |
| 小暑 | しょうしょ | 105° | 7月6〜7日 |
| 大暑 | たいしょ | 120°(中気) | 7月22〜23日 |
| 立秋 | りっしゅう | 135° | 8月6〜8日 |
| 処暑 | しょしょ | 150°(中気) | 8月22〜23日 |
| 白露 | はくろ | 165° | 9月6〜8日 |
| 秋分 | しゅうぶん | 180°(中気) | 9月22〜23日 |
| 寒露 | かんろ | 195° | 10月7〜9日 |
| 霜降 | そうこう | 210°(中気) | 10月22〜24日 |
| 立冬 | りっとう | 225° | 11月6〜8日 |
| 小雪 | しょうせつ | 240°(中気) | 11月21〜23日 |
| 大雪 | たいせつ | 255° | 12月6〜7日 |
| 冬至 | とうじ | 270°(中気) | 12月21〜22日 |
雑節
雑節は、二十四節気のほかに季節の目安として使われてきた日です。このAPIでは次のものを入れています(社日は入れていません)。
雑節の一覧を開く(10行)
| name | label の例 | 決め方 | 日付のめやす(2000〜2100年) |
|---|---|---|---|
| 節分 | 節分 | 立春の前日 | 2月2〜3日 |
| 彼岸入り | 彼岸入り(春)/彼岸入り(秋) | 春分・秋分の3日前 | 3月16〜18日/9月19〜20日 |
| 彼岸明け | 彼岸明け(春)/彼岸明け(秋) | 春分・秋分の3日後 | 3月22〜24日/9月25〜26日 |
| 八十八夜 | 八十八夜 | 立春から数えて88日目(立春の87日後) | 5月1〜2日 |
| 入梅 | 入梅 | 太陽の黄経が80°になる日 | 6月10〜11日 |
| 半夏生 | 半夏生 | 太陽の黄経が100°になる日 | 7月1〜2日 |
| 二百十日 | 二百十日 | 立春から数えて210日目(立春の209日後) | 8月31日〜9月1日 |
| 二百二十日 | 二百二十日 | 立春から数えて220日目(立春の219日後) | 9月10〜11日 |
| 土用入り | 冬の土用入り/春の土用入り/夏の土用入り/秋の土用入り | 太陽の黄経が 297°(冬)・27°(春)・117°(夏)・207°(秋)になる日 | 1月16〜18日/4月16〜17日/7月18〜20日/10月19〜21日 |
| 土用の丑の日 | 夏の土用の丑の日 など | 土用入りの日から、次の立春・立夏・立秋・立冬の前日まで(土用の期間)のうち、日の干支が丑の日 | 季節ごとに1〜2回 |
- 土用の期間(約18日)に丑の日が2回あるときは、両方入ります(2回目がいわゆる「二の丑」)。
- 日の
zassetsuにはlabelが入ります。季節を除いた名前で調べたいときは、年のzassetsuのnameを使ってください。 - 雑節の決め方は、国立天文台の暦要項にならっています。地域や流儀によって別の決め方をすることもあります。
月齢と月の満ち欠け
- 月齢(
moon_age): その日の正午(日本時間)の時点で、直前の新月の瞬間から何日たったかです。小数1桁に四捨五入しています。新月から満月まではおよそ14.8日、次の新月まではおよそ29.5日です。 - 月の満ち欠け(
moon_phase): その日(日本時間の0時から24時まで)に、新月・上弦・満月・下弦の瞬間があれば、その名前が入ります。年のmoon_phasesには秒までの時刻が入ります。 - 新月の瞬間が正午より後の日は、月齢が 29 前後のまま
moon_phaseが「新月」になります(例: 2026年2月17日は新月が21時01分なので月齢 29.3、翌日が 0.6)。月齢が0になる日と新月の日は、1日ずれることがあります。 - 旧暦の日付(新月の日が1日)と月齢はおおむね「旧暦の日 − 1 ≒ 月齢」ですが、月齢は正午の値、旧暦は日付で区切るので、一致しない日があります。
- 新月・満月などの時刻は、月と太陽の黄経の差(地心)が 0°・90°・180°・270° になる瞬間です。見る場所による違いや、月の出・月の入りは含みません。
干支と和暦
日の干支(kanshi)
十干(甲・乙・丙…)と十二支(子・丑・寅…)を組み合わせた60通りが、1日ずつ順に巡ります。1900年1月1日が甲戌(きのえいぬ)で、そこから途切れずに数えています。土用の丑の日の「丑」はこの十二支です。
年の干支(年の kanshi)
西暦の年で決め、1月1日で切り替えます(例: 2026年は丙午)。立春で年の干支を切り替える流儀(占いなどで使われます)もありますが、このAPIでは1月1日です。立春で切り替えたいときは、立春の日(solar_terms の「立春」)より前を前の年の干支として扱ってください。
和暦(wareki)
明治以降の元号で、元号の1年目は「元年」と書きます。元号は、切り替わった日から新しいものにしています。
| 元号 | この日から | 前日の和暦 |
|---|---|---|
| 大正 | 1912年7月30日 | 明治45年 |
| 昭和 | 1926年12月25日 | 大正15年 |
| 平成 | 1989年1月8日 | 昭和64年 |
| 令和 | 2019年5月1日 | 平成31年 |
- 1900年1月1日は明治33年です(このAPIの期間は明治33年から)。
- 未来の日付も、今の元号(令和)のまま数えています(2100年は令和82年)。改元がいつになるかは分からないためです。改元が決まったら、その日から新しい元号に直します。
正確さ(暦要項との照合)
天文の計算には、NASA ジェット推進研究所(JPL)が公開している天体暦 DE440s を、Python の skyfield で使っています。太陽の地心の視黄経と、月と太陽の黄経の差を計算し、二十四節気・雑節の角度や新月・満月などになる瞬間を秒まで求めてから、日本時間で日付を決めています。
この結果を、国立天文台が毎年公表している暦要項の2004年から2027年までの24年分と照らし合わせました。
| 照らし合わせたもの | 件数 | 日付 |
|---|---|---|
| 二十四節気 | 576件 | すべて一致 |
| 雑節(角度で決まる入梅・半夏生・土用入り) | 144件 | すべて一致 |
| 雑節(日数で決まる節分・彼岸入り・八十八夜・二百十日) | 24年分のすべて | すべて一致(二百二十日・彼岸明け・土用の丑の日は暦要項に載っていないため、同じ決め方で計算しています) |
| 朔弦望(新月・上弦・満月・下弦) | 1,187件 | すべて一致 |
- 暦要項の時刻は分までです。こちらの時刻を分に丸めて比べると、22件が1分ずれます。どれも秒がちょうど30秒前後で、四捨五入の境目に当たるものです。APIの
atは秒まで返します。 - 旧暦・六曜には公式の基準が無いため、照らし合わせていません。決め方は上のとおりです。
- 遠い将来の値について: 地球の自転はわずかにゆらいでおり(ΔT)、将来の分は予測を含みます。おおむね2050年以降は、0時に近い時刻の二十四節気や新月が、実際には前後の日になる可能性があります。そうした日は旧暦の月の始まり・六曜もずれます。
使い方の例
どの例も、ブラウザの JavaScript(フレームワーク不要)で動きます。年のファイルは一度取ったら覚えておき、同じ年では呼び直しません。
その日の六曜を出す
const API = "https://api.shirugear.com/koyomi/v1/";
const years = new Map(); // 年のファイルは一度だけ取り、使い回す
function loadYear(year) {
if (!years.has(year)) {
const p = fetch(API + year + ".json").then((res) => {
if (!res.ok) throw new Error("HTTP " + res.status);
return res.json();
});
p.catch(() => years.delete(year)); // 失敗したら次は取り直す
years.set(year, p);
}
return years.get(year);
}
// "2026-11-01" のような日付の暦(1日分)。範囲外の年は例外
async function koyomiOf(date) {
const data = await loadYear(Number(date.slice(0, 4)));
return data.days.find((d) => d.date === date);
}
const day = await koyomiOf("2026-11-01");
console.log(day.rokuyo); // "赤口"
console.log(day.lunar.text); // "9月22日"(旧暦)
console.log(day.moon_age); // 21.5
大安の日を拾う(土日祝だけ)
祝日は祝日・営業日APIの同じ年のファイルから取り、日付で突き合わせます。上の loadYear を使います。
const [koyomi, holidays] = await Promise.all([
loadYear(2026),
fetch("https://api.shirugear.com/holidays/v1/2026.json").then((res) => res.json()),
]);
const holidayDates = new Set(holidays.holidays.map((h) => h.date));
const goodDays = koyomi.days.filter((d) =>
d.rokuyo === "大安" && (d.weekday === "土" || d.weekday === "日" || holidayDates.has(d.date))
);
console.log(goodDays.map((d) => d.date));
// ["2026-01-01", "2026-01-24", "2026-02-11", "2026-02-21", …]
カレンダーに六曜を添える
日付のマスに data-date を付けておき、六曜を入れる場所を用意します。値は textContent で入れます(HTML として解釈させない)。
<!-- カレンダーの1マス(例) -->
<td data-date="2026-11-01">1 <small class="rokuyo"></small></td>
<script>
async function addRokuyo(root) {
for (const cell of root.querySelectorAll("[data-date]")) {
const label = cell.querySelector(".rokuyo");
if (!label) continue;
try {
const day = await koyomiOf(cell.dataset.date); // 上の例の koyomiOf(年ごとに1回だけ通信)
label.textContent = day ? day.rokuyo : "";
} catch (e) {
label.textContent = ""; // 取れなければ六曜なしで表示する
}
}
}
addRokuyo(document);
</script>
六曜が取れなくてもカレンダー自体は使えるように、六曜は「あれば添える」作りにしておくと安心です。
エラー
うまくいかないときは、HTTPの状態コードと、次の形の JSON を返します。code は固定の値なので、プログラムで見分けるときはこれを使ってください(message は説明文で、言い回しが変わることがあります)。
{"error":{"status":404,"code":"year_not_found","message":"この年の暦はありません。1900年から2100年までで指定してください。"}}
| 状態 | code | いつ |
|---|---|---|
| 400 | invalid_year | 年の形が違う(2桁・和暦・.json が無いなど)。例: /koyomi/v1/26.json |
| 404 | year_not_found | 4桁だが1900〜2100年の外。例: /koyomi/v1/1899.json |
| 404 | not_found | URLが違う(/koyomi/v1/ の外) |
| 405 | method_not_allowed | GET / HEAD 以外で呼んだ |
通信できない・サーバーが止まっているときは、JSON が返らないことがあります。fetch の失敗(例外)も受け止めて、暦なしでも画面が使えるようにしてください。
データの更新・キャッシュ・呼び出し回数
- 作り方: 暦は前もって計算して、年ごとのファイルにしてあります。天文の計算結果(二十四節気・雑節の角度・新月などの時刻の表)はシルギアの手元で作って保管し、サーバーが毎日の確認(4:50 日本時間ごろ)でそこから組み立て直します。
- 中身が変わるとき: 天文の表を作り直したときや、改元・誤りの修正があったときだけです。それ以外は、何度組み立てても同じ暦になります。
- データの版(
data_version): 元データが変わった日付です(例:"2026-11-01")。祝日・営業日APIと共通の版なので、祝日のデータが更新されたときは、暦の中身が同じでも版の日付が進みます。/koyomi/v1/meta.jsonには、作った日時(built_at・UTC)・期間・計算のもと・日数も入っています。 - キャッシュ: 応答は1日(エラーは1時間)キャッシュしてかまいません。暦の中身はめったに変わらないので、アプリの中に年のファイルを長く持っておいてもかまいません。
ETag/Last-Modifiedに対応しているので、変わっていなければ 304 が返ります。 - 呼び出し回数の目安: 決まった上限はありませんが、1つの利用元から1秒あたり10回程度までにしてください。年のファイルは使い回して、日付ごと・画面を開くごとに同じ年を取り直さないでください。1年分のカレンダーなら、呼び出しは1回で済みます。
- 全期間をまとめて使いたいとき: 201年分(約20MB)を一度に取るような使い方は控え、必要な年だけを取ってください。
変更の方針と更新履歴
- v1 の中では、項目を足すことはあっても、今ある項目の名前や意味は変えません。知らない項目が増えていても無視するように作ってください。
- 計算の誤りを直したときや改元のときは、同じ v1 のまま値を直します。そのときはこのページの更新履歴でお知らせします。
- 互換性のない変更は、URLの版を分けて(
/koyomi/v2/など)行います。v1 を終わらせるときは、できるかぎり6か月以上前にこのページでお知らせします。 - 提供条件(無料・登録不要・アクセス回数の上限など)は、利用状況に応じて変えることがあります(利用規約第4条)。
更新履歴
- 2026年11月1日
- 公開。
機械で読める仕様(型定義・OpenAPI)
- TypeScript の型定義:
/koyomi/types.d.ts - OpenAPI 3.1:
/koyomi/openapi.json(コード生成やテストに使えます)
用語の説明
用語の説明を開く(16語)
- API
- プログラムから呼び出して使う窓口のことです。このAPIは、URLを開くと結果がデータ(JSON)で返ります。
- JSON
- プログラムで扱いやすいデータの書き方です。JavaScript ではそのままオブジェクトとして使えます。
- CORS対応
- ほかのサイト(あなたのサイト)のページのJavaScriptから、このAPIを直接呼び出せるという意味です。サーバー側のプログラムは要りません。
- 旧暦
- 明治5年(1872年)まで使われていた太陰太陽暦のことです。月の満ち欠けで1か月を決め、季節とのずれを閏月で調整します。最後に使われた天保暦の決め方を、ふつう「旧暦」と呼びます。
- 閏月
- 旧暦で、季節とのずれを直すために、ほぼ3年に1度入れる月です。前の月と同じ番号で「閏◯月」と呼びます。
- 朔・弦・望(朔弦望)
- 朔は新月、弦は上弦と下弦(半月)、望は満月のことです。
- 六曜
- 先勝・友引・先負・仏滅・大安・赤口の6つを、旧暦の日付から決めて日ごとに割り当てたものです。カレンダーに載る暦注として広く使われています。
- 干支(十干十二支)
- 十干(甲・乙・丙・丁・戊・己・庚・辛・壬・癸)と十二支(子・丑・寅・卯・辰・巳・午・未・申・酉・戌・亥)を組み合わせた60通りの呼び名です。日と年に割り当てます。
- 二十四節気
- 太陽の通り道を15°ずつ24に分けて、季節の区切りにしたものです(立春・春分・夏至など)。
- 中気
- 二十四節気のうち、太陽の黄経が30°の倍数のもの(春分・穀雨・小満・夏至・大暑・処暑・秋分・霜降・小雪・冬至・大寒・雨水)です。旧暦の月の番号を決めるのに使います。
- 雑節
- 二十四節気のほかの、季節の目安となる日です(節分・彼岸・八十八夜・入梅・半夏生・土用・二百十日など)。
- 黄経(太陽の視黄経)
- 地球から見た太陽の位置を、黄道に沿って春分点から測った角度です。0°が春分、90°が夏至、180°が秋分、270°が冬至です。
- 月齢
- 直前の新月から何日たったかを表す数です。0 が新月、15 前後が満月です。
- 暦要項
- 国立天文台が毎年2月に官報で公表する、翌年の暦(国民の祝日・二十四節気・雑節・朔弦望など)です。
- ΔT(デルタT)
- 地球の自転をもとにした時刻と、一様に進む時刻との差です。自転のゆらぎで変わるため、将来の分は予測になります。
- 暦注
- 暦に書き添えられる日の吉凶などの注記です。六曜や干支もその一つです。
よくある質問
本当に無料ですか?登録は必要ですか?
現在は無料で、登録やAPIキーも要りません。個人・法人、営利・非営利を問わず使えます。ただし利用状況に応じて提供条件を変えることがあり、そのときはできるかぎりこのページでお知らせします。
祝日は入っていますか?
入っていません。祝日・休日は祝日・営業日APIで取れます。同じ年の2つのファイルを日付で突き合わせれば、「大安の土日祝」のような日も拾えます。
六曜や干支に根拠はありますか?
六曜・干支などの暦注は、迷信・慣習としての参考情報です。科学的な根拠を示すものではありません。冠婚葬祭の日取りなどに使うときは、相手の考え方も大切にしてください。
市販のカレンダーと旧暦や六曜が違うのはなぜですか?
旧暦はいまの日本では公式に定められた暦ではなく、作り手によって決め方が少しずつ違います。このAPIは天保暦の決め方に沿って天文計算から求めています。新月の時刻が0時に近い月や、2033年から2034年にかけての閏月の置き方(2033年問題)では、ほかの暦と1日または1か月ずれることがあります。
2033年の旧暦はどうなっていますか?
このAPIでは、2033年12月22日からを閏11月としています。日本カレンダー暦文化振興協会の見解と同じです。閏7月や(2034年の)閏1月とする暦もあり、2033年秋から2034年春にかけての旧暦の日付と六曜は、暦によって違うことがあります。
一粒万倍日や天赦日は入っていますか?
入っていません。返すのは、旧暦・六曜・日と年の干支・二十四節気・雑節・月齢と月の満ち欠け・和暦です。社日も入れていません。
時刻はどこの時間ですか?
すべて日本時間(+09:00)です。二十四節気や新月が何日に当たるかも、日本時間で決めています。
1日分だけを取るURLはありますか?
ありません。暦は1年分を1つのファイル(約100KB、圧縮して約10KB)で返します。年のファイルを一度取ったら手元に置いて、その年の日付はそこから引いてください。
アクセス数に上限はありますか?
決まった上限はありませんが、目安として1つの利用元から1秒あたり10回程度までにしてください。年のファイルを使い回せば、1年分のカレンダーでも呼び出しは1回で済みます。
ご利用にあたって
ご利用の前に利用規約をご確認ください。データの正確さや、止まらないことは保証していません。六曜・干支などの暦注は迷信・慣習としての参考情報で、科学的な根拠を示すものではありません。公式の暦(二十四節気・朔弦望など)を確かめたいときは、国立天文台 暦計算室の暦要項をご覧ください。ご質問・不具合のご連絡は、シルギアのお問い合わせ窓口から、件名に「API」と入れてお送りください。