出産予定日から妊娠週数を計算
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
というそうです。
日本の妊娠初期と微妙に違いますね。
ケミストでは引き続き「ブログ」のテーマを募集しています!
調べてほしい、まとめてほしい薬の情報がありましたら教えてください。