出産予定日計算ツール
最終月経の初日から出産予定日が分かります。2026年1月1日に始まり周期が28日なら、280日後の2026年10月8日が予定日で、各時期の区切りの日付も表示されます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 最終月経の初日
- 2026-01-01
- 周期(日)
- 28
- 出産予定日
- 2026-10-08
- 妊娠第1三半期の終了日
- 2026-04-08
- 妊娠第2三半期の終了日
- 2026-07-15
無料オンライン
出産予定日の求め方
この計算ツールは、最終月経の初日にネーゲレの計算法を当てはめます。標準的な妊娠期間はその日から280日で、これは周期が28日であることを前提にしています。周期には個人差があるため、ご自身の周期の日数を入力すると、その差だけ調整されます。妊娠期間は280日に周期の日数を足し、28を引いた日数になります。そのため周期30日なら予定日は2日遅く、26日なら2日早くなります。2026年1月1日に始まり標準の周期なら、予定日は2026年10月8日です。周期は20日から45日まで入力できます。
時期の区切りと使われる場面
結果には出産予定日のほか、妊娠日数の合計と2つの区切りが含まれます。妊娠初期の終わりは最終月経の初日から97日後、中期の終わりは195日後です。2026年1月1日に始まった場合、それぞれ4月8日と7月15日になります。日付は月や年をまたいで正しく進み、うるう年も考慮されるので、2024年2月15日に始まった場合は2月29日も含まれます。妊娠アプリでは1つの日付から予定日と区切りを示すために、医療機関の受付票では患者ごとの周期に合わせた妊娠週数と予定日をあらかじめ記入するために使われます。
純粋な UTC の暦日算術
すべての日付の計算は壁時計を用いない純粋な UTC の暦算術です。内部では addDays が文字列を厳格な正規表現で解析し、Date.UTC で日付を組み立て、日数の offset を加え、toISOString().slice(0,10) で再直列化します。これは月と年の境界を正しくまたぎ、うるう年を尊重します。
2024-02-15 の lmp は 2 月 29 日を自動的に数えます。
活用例
妊娠アプリ
1 つの LMP の入力から、推定出産予定日と各三半期の節目を妊娠中の親に示します。
臨床の問診フォーム
EHR や予約の流れの中で、患者ごとに周期を調整した妊娠週数と出産予定日をあらかじめ埋めます。
よくある質問
タイムゾーンは結果に影響しますか?
いいえ。 すべての計算は Date.now() を用いない UTC の暦ですので、結果は完全に決定的です。
出産予定日はどのように計算しますか?
ネーゲレの計算法を使い、最終月経の初日に280日を足します。2026年1月1日に始まり周期が28日の場合、予定日は2026年10月8日になります。
周期が28日より長い、または短い場合は?
周期の日数を入力すると、その差だけ予定日が動きます。周期30日なら2日遅く、26日なら2日早くなります。20日から45日までの整数を入力できます。
妊娠初期と中期はいつ終わりますか?
初期の終わりは最終月経の初日から97日後、中期の終わりは195日後としています。2026年1月1日に始まった場合、それぞれ2026年4月8日と7月15日です。
うるう年も考慮されますか?
考慮されます。日付は月や年をまたいで正しく進み、妊娠期間に2月29日が入る場合はその日も数えます。2024年2月15日に始まった場合も、余分な1日が自動で含まれます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/dev/due-date \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"lmp":"2026-01-01"}'const res = await fetch("https://api.kit.forhosting.com/dev/due-date", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"lmp": "2026-01-01"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/due-date",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"lmp": "2026-01-01"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/due-date", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"lmp":"2026-01-01"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"lmp":"2026-01-01"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/due-date", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"lmp": "2026-01-01"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.due_date",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
最終月経の初日(lmp)と任意の cycle_days の値から妊娠の出産予定日を推定し、出産予定日・両三半期の終了日・妊娠の総日数を返します。
周期に合わせて調整したネーゲレの計算
ツールは lmp フィールド、すなわち最終月経の初日の ISO 日付(YYYY-MM-DD)にネーゲレの概算法を適用します。標準的な妊娠はその日付から 280 日と数えますが、この計算ツールはあなた個人の周期に合わせて式 offset = 280 + (cycle_days - 28) で調整しますので、30 日周期は出産予定日を 2 日遅らせ、26 日周期は 2 日早めます。cycle_days の既定は 28 で、20 から 45 までの整数でなければなりません。応答は due_date(lmp に offset を加えたもの)、gestation_days(offset そのもの)、そして 2 つの節目を返します。trimester1_end は lmp + 97 日、trimester2_end は lmp + 195 日です。lmp が 2026-01-01 で既定の周期なら、due_date は 2026-10-08、gestation_days は 280 です。
純粋な UTC の暦日算術
コードは Date.now() を一切呼びませんので、同じ lmp はサーバーのタイムゾーンやリクエストの瞬間に関わらず常に同じ due_date を生みます。
検証と型付きエラー
lmp は月が 1-12 で実在する暦日を持つ YYYY-MM-DD に一致する文字列でなければなりません。2026-02-30 のような値は、組み立てた UTC 日付が同じ構成要素に往復して戻らないため拒否されます。最上位の入力は素のオブジェクトでなければなりません — 配列や null は拒否されます。各フィールドは計算が実行される前に検査され、あらゆる失敗は型のない例外ではなく問題を示す型付きの invalid_input エラーを送出します。cycle_days は 20-45 以内の整数でなければなりませんので、19・46・小数の値はいずれも失敗します。失敗した API タスクは決して課金されませんので、敵対的または偶発的なペイロードを前払い残高を使わずに検証できます。
連携の活用例
一括のスケジューリング
数千の LMP レコードを API に一括で通し、決定的に予約枠を計画します。
技術的な質問
どの概算法を使いますか?
ネーゲレの概算法です。LMP から 280 日で、(cycle_days - 28) で調整します。
28 日以外の周期を設定できますか?
はい。cycle_days を 20 から 45 までの整数として渡します。既定は 28 です。
lmp はどの日付形式が必要ですか?
厳格な YYYY-MM-DD の文字列です。2026-02-30 のような不可能な日付は invalid_input を返します。
無料ですか?
ブラウザ widget では無料です。API は同じコアを呼び出しごとに $0.002 から実行します。