月の満ち欠け計算ツール
日付を入れると月の満ち欠けが分かります。2026年1月1日の月齢は12.421日、輝面比は93.9%で、上弦と満月の間の満ちていく月です。平均朔望月29.530588853日で計算します。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 日付
- 2026-01-01
- 月齢(日)
- 12.421
- 照明率(%)
- 93.9
- 月相
- 満ちていく凸月
- 月周期(日)
- 29.530588853
ISO 形式の日付を与えると、既知の新月からの日数で表した月齢、輝面比をパーセントで、満ち欠けの名称を、平均朔望月 29.530588853 日を用いて返します。
月の満ち欠けの求め方
月は平均29.530588853日の朔望月で、新月から満月を経て再び新月に戻ります。このツールは、分かっている新月からあなたの日付(協定世界時の12:00)までの日数を数え、今の周期の中での余りだけを残します。この余りが月齢です。月面の輝いている割合は月齢に沿ってなめらかに変化し、新月で0%近く、満月の近くで最大の100%になります。2026年1月1日の月齢は12.421日、輝面比は93.9%です。
使いどころと限界
満ち欠けの名前は、周期をほぼ同じ長さの8つの区間に分けて決めます。新月から細い月、半月、凸月を経て、再び始めに戻ります。そのため、カレンダーや暦のページ、ダッシュボード、毎日の月のアイコンに安心して使えます。ただし平均の満ち欠けによる近似で、月の軌道がわずかに楕円であることは考えていないため、満ち欠けと輝面比は1日ほどずれることがあります。正確な天体位置が必要な場合は、専用の暦表を使ってください。
よくある質問
どの朔望周期を使いますか?
2000-01-06 18:14 UTC の基準新月を基準とした、平均朔望月 29.530588853 日です。
満ち欠けと輝面比はどれくらい正確ですか?
軌道離心率を無視する平均位相モデルですので、結果はおよそ 1 日の精度で、カレンダーやダッシュボードに最適です。
月の8つの満ち欠けは、どんな順番ですか?
新月、満ちていく細い月、上弦、満ちていく凸月、満月、欠けていく凸月、下弦、欠けていく細い月の順です。それぞれが朔望月のおよそ8分の1を占め、最後の後は新月に戻ります。
月齢とは何ですか?
直前の新月から何日たったかを表す日数で、0から約29.53まで進むと周期が始めに戻ります。2026年1月1日の月齢は12.421日で、上弦と満月の間の満ちていく月にあたります。
1日のうち何時の満ち欠けを計算していますか?
どの日付も協定世界時の12:00で計算します。そのため1つの日付に答えは1つで、どこで開いたカレンダーでも同じ満ち欠けと輝面比が表示されます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/dev/moon-phase \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"2026-01-01"}'const res = await fetch("https://api.kit.forhosting.com/dev/moon-phase", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"date": "2026-01-01"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/moon-phase",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"date": "2026-01-01"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/moon-phase", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"date":"2026-01-01"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"date":"2026-01-01"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/moon-phase", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"date": "2026-01-01"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.moon_phase",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
朔望月による月齢モデル
各日付を 12:00 UTC で評価し、エポックからの経過ミリ秒を取り、86400000 で割って日数にし、それを朔望の長さで割った剰余に約します。輝面比はその月齢から (1 - cos(2*pi*age/SYNODIC_DAYS)) / 2 * 100 として導かれる滑らかな曲線で、満月付近で 100% にピークを迎え、新月付近で 0% に近づきます。負の剰余は 1 周期を加えて前方に折り返しますので、age_days は常に [0, 29.53) の範囲にあります。
満ち欠けの名称の選び方
月の軌道離心率を無視しますので、満ち欠けの名称と輝面比はおよそ 1 日の精度であり、カレンダー・ダッシュボード・コンテンツには十分すぎますが、精密な天体暦の作業には向きません。満ち欠けの文字列は、age_days をそれぞれおおよそ朔望月の 8 分の 1 にあたる 8 つの固定しきい値と比較して選ばれます。月齢が 1.84566 未満は 'new'、次いで 5.53699 未満は 'waxing_crescent'、9.22831 未満は 'first_quarter'、12.91963 未満は 'waxing_gibbous'、16.61096 未満は 'full'、20.30228 未満は 'waning_gibbous'、23.99361 未満は 'last_quarter'、27.68493 未満は 'waning_crescent' で、その最後の境界以上のものは 'new' に折り返します。2026-01-01 の月齢は 12.421 であるため、waxing_gibbous の帯に入ります。これは平均位相の近似です。
日付の検証と丸め
日付は厳格な YYYY-MM-DD 形式の文字列でなければならず、正規表現で検査されます。任意の decimals パラメータは既定 3 で、0 から 6 までの整数でなければなりません。月は 1 から 12、日は 1 から 31 でなければならず、実際の暦は算術の前に UTC のプローブで検証されますので、JavaScript の Date が静かに 3 月へ繰り越してしまう 2026-02-30 のような不可能な日付は、静かに受理される代わりに invalid_input として拒否されます。age_days はその精度まで half-up で丸められ、illumination_percent は decimals に関わらず常に小数 1 桁に丸められます。応答は入力の日付と synodic_days の定数も返し、非有限の中間値は invalid_input を送出します。
連携の活用例
カレンダーと暦の widget
月の各日について満ち欠けと輝面比を表示し、決定的な満ち欠けの名称から月のアイコンを描画します。
写真撮影と屋外の計画
日付範囲にわたって illumination_percent を照会し、天体写真やフィールドワークに最も暗い夜や最も明るい夜を見つけます。
コンテンツとスケジュールの自動化
日付を API に一括で通し、投稿・イベント・釣りや園芸のガイドに正しい月の満ち欠けを付けます。
技術的な質問
どの日付形式が受け付けられますか?
厳格な YYYY-MM-DD の文字列のみです。2026-02-30 のような不可能な日付は、繰り越される代わりに invalid_input として拒否されます。
満ち欠けの取り得る値は何ですか?
new・waxing_crescent・first_quarter・waxing_gibbous・full・waning_gibbous・last_quarter・waning_crescent で、月齢のしきい値によって選ばれます。
無料ですか、また API の費用はいくらですか?
ページ上の widget は無料で(tier A)、同じ決定的なコアを実行します。API 呼び出しは成功したリクエストごとに $0.002 から課金されます。