▼生年月日を入力
年 月 日
現在:2025/06/07
年齢:満18歳
学齢:
未就学:false
3歳以上:true
数え年:19歳
/* * 年齢計算 * * a: 誕生日 * b: 年齢を取得する日(省略時は現在) * */ var get_age = function(a, b) { if (!b) b = new Date(); var r = b.getFullYear() - a.getFullYear(); var dt = new Date(b.getFullYear(), a.getMonth(), a.getDate()); return b < dt ? r - 1 : r; }; /* * 学齢計算 * * a: 誕生日 * b: 学齢を取得する日(省略時は現在) * */ var get_school_age = function(a, b) { if (!b) b = new Date(); var y = b.getFullYear(); if (b.getMonth() < 3) y--; return get_age(a, new Date(y, 3, 1)); }; /* * 未就学児かどうか * * a: 誕生日 * b: 判定する日(省略時は現在) * */ var is_pre_school = function(a, b) { return get_school_age(a, b) < 6; }; /* * (n)歳以上かどうか * * n: 基準になる年齢 * a: 誕生日 * b: 判定する日(省略時は現在) * */ var is_over_age = function(n, a, b) { return get_age(a, b) >= n; }; /* * 数え年計算 * * a: 誕生日 * b: 年齢を取得する日(省略時は現在) * */ var get_kazoedoshi = function(a, b) { if (!b) b = new Date(); var y = a.getFullYear(); return get_age(new Date(y, 0, 1), b) + 1; }; /* * Date を日付文字列に変換 * */ var date_to_string = function(dt, sep) { return [ dt.getFullYear().toString().padStart(4, '0'), (dt.getMonth() + 1).toString().padStart(2, '0'), dt.getDate().toString().padStart(2, '0') ].join(!sep ? '-' : sep); }; /* * 整数化 * */ var intval = function(s, b) { var n = parseInt(s, b || 10); return isNaN(n) ? 0 : n; }; jQuery(function($) { var gakurei = [ '未就学', '未就学', '未就学', '未就学(年少)', '未就学(年中)', '未就学(年長)', '小1', '小2', '小3', '小4', '小5', '小6', '中1', '中2', '中3', '高1', '高2', '高3' ]; $('#B1').on('click', function() { var y = intval($('#Y1').val()); var m = intval($('#M1').val()); var d = intval($('#D1').val()); var bday = new Date(y, m - 1, d); var now = new Date(); var g = get_school_age(bday, now); $('#p0').text('現在:' + date_to_string(now, '/')); $('#p1').text('年齢:満' + get_age(bday, now) + '歳'); $('#p2').text('学齢:' + (g < 18 ? gakurei[g] : '')); $('#p3').text('未就学:' + is_pre_school(bday, now)); $('#p4').text('3歳以上:' + is_over_age(3, bday, now)); $('#p5').text('数え年:' + get_kazoedoshi(bday, now) + '歳'); }).trigger('click'); });