We Blog Weblog

出産予定日から妊娠週数を計算

ブログ

2024年6月20日

以前の記事を元に、出産予定日から妊娠週数を計算するツールを作ってみました。

ここに結果が出ます

 

日付入力欄を2つ用意し、IDをそれぞれstartDate、deliveryDateとします。

#startDateの初期値を今日の日付に設定しておきます。

<input type="date" id="startDate">

<input type="date" id="deliveryDate">
window.onload = function() {
  var date = new Date()
  var year = date.getFullYear()
  var month = date.getMonth() + 1
  var day = date.getDate()

  var toTwoDigits = function(num, digit) {
    num += ''
    if (num.length < digit) {
      num = '0' + num
    }
    return num
  }

  var yyyy = toTwoDigits(year, 4)
  var mm = toTwoDigits(month, 2)
  var dd = toTwoDigits(day, 2)
  var ymd = yyyy + "-" + mm + "-" + dd;

  document.getElementById("startDate").value = ymd;
}

計算ボタンを設置します。

onclick="calculateDifference()"としておきます。

<input type="submit" onclick="calculateDifference()" value="計算!">

今回は計算結果出力欄を複数設置し、条件に該当するものだけ表示させることにします。

<span id="result">ここに結果が出ます</span>
<span id="third-trimester" class="d-none text-primary"></span>
<span id="second-trimester" class="d-none text-info"></span>
<span id="first-trimester" class="d-none text-success"></span>
<span id="error" class="d-none text-danger"></span>

以下のスクリプトを記述します。

function calculateDifference() {
  const startDate = new Date(document.getElementById('startDate').value);
  const deliveryDate = new Date(document.getElementById('deliveryDate').value);

  const difference = deliveryDate - startDate;
  const difference2 = (1000 * 60 * 60 * 24 * 7 * 40) - difference;

  const daysDifference = difference2 / (1000 * 60 * 60 * 24);
  const weeks = Math.floor(daysDifference / 7);
  const remainingDays = Math.floor(daysDifference % 7);

  if (daysDifference >= 196) {
    document.getElementById('third-trimester').innerText = `${weeks}週 ${remainingDays}日 妊娠後期`;
    document.getElementById('third-trimester').classList.remove('d-none');
    document.getElementById('result').classList.add('d-none');
    document.getElementById('first-trimester').classList.add('d-none');
    document.getElementById('second-trimester').classList.add('d-none');
    document.getElementById('error').classList.add('d-none');
  } else if (daysDifference >= 112) {
    document.getElementById('second-trimester').innerText = `${weeks}週 ${remainingDays}日 妊娠中期`;
    document.getElementById('second-trimester').classList.remove('d-none');
    document.getElementById('result').classList.add('d-none');
    document.getElementById('first-trimester').classList.add('d-none');
    document.getElementById('third-trimester').classList.add('d-none');
    document.getElementById('error').classList.add('d-none');
  } else if (daysDifference >= 0) {
    document.getElementById('first-trimester').innerText = `${weeks}週 ${remainingDays}日 妊娠初期`;
    document.getElementById('first-trimester').classList.remove('d-none');
    document.getElementById('result').classList.add('d-none');
    document.getElementById('second-trimester').classList.add('d-none');
    document.getElementById('third-trimester').classList.add('d-none');
    document.getElementById('error').classList.add('d-none');
  } else {
    document.getElementById('error').innerText = '40週以内の日付を入力してください';
    document.getElementById('error').classList.remove('d-none');
    document.getElementById('result').classList.add('d-none');
    document.getElementById('first-trimester').classList.add('d-none');
    document.getElementById('second-trimester').classList.add('d-none');
    document.getElementById('third-trimester').classList.add('d-none');
  }
}

ここは(ChatGPTには頼らず)独学なので合っているかはわかりません。もっとスマートな方法があるような気がします。

40週 -(調べたい日と出産予定日の差)で妊娠週数を算出しました。

参考:厚生労働省委託 働く女性の心とからだの応援サイト|いつ、何に気をつければいい?妊娠週数・月数の自動計算

今回のツールでは、
妊娠初期:0週0日~15週6日
妊娠中期:16週0日~27週6日
妊娠後期:28週0日~39週6日
と設定しましたが「産科婦人科用語集・用語解説集」では13週6日までが妊娠初期と定義されています。

アメリカでは、
0週0日~12週6日をfirst trimester
13週0日~27週6日をsecond trimester
28週0日~39週6日をthird trimester
というそうです。

日本の妊娠初期と微妙に違いますね。

ケミストでは引き続き「ブログ」のテーマを募集しています!
調べてほしい、まとめてほしい薬の情報がありましたら教えてください。

この記事を書いた人
みやの
Web・DTP担当

Contact Us

ご意見、ご相談、料金のお見積もりなど、お気軽にお問い合わせください。

お問い合わせはこちら

TOP