年齢計算
和暦または西暦から年齢計算できます。
基準は「」です。
和暦から年齢を計算する
年が元号の期間を超えている場合は、次の元号に繰り越されます。
元号 | 年 | 月 | 日 |
---|---|---|---|
西暦から年齢を計算する
年 | 月 | 日 |
---|---|---|
年齢計算で利用しているAPIについて
HuTime Web API - Calendar Calculation © Tatsuki Sekino
Creative Commons Attribution 4.0
年齢計算の注意事項
- 年齢計算の結果などに関して当サイトは一切責任を負いません。
年齢計算ツールについて
年齢計算ツールはJavaScriptで制作しています。掲載しているソースコードは解説のためにバリデーションや通信失敗時の処理などを省略しているので、実際のソースコードとは異なります。
使用しているJavaScriptのライブラリ
- jQuery v3.3.1
利用しているAPI
HTML
年月日を入力するinputタグのpattern属性に数字の正規表現である「\d*」を指定して、iPhoneで数字入力のキーパッドが表示されるようにしています。Androidなどでも表示されるようにするには別の方法を考える必要があります。
<h3>和暦から年齢を計算する</h3>
<table>
<thead>
<tr>
<th>元号</th>
<th>年</th>
<th>月</th>
<th>日</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<select id="jp-era">
<option value="令和">令和</option>
<option value="平成">平成</option>
<option value="昭和">昭和</option>
<option value="大正">大正</option>
<option value="明治">明治</option>
</select>
</td>
<td><input type="text" id="jp-year" pattern="\d*"></td>
<td><input type="text" id="jp-month" pattern="\d*"></td>
<td><input type="text" id="jp-day" pattern="\d*"></td>
</tr>
</tbody>
</table>
<div id="result-from-jp"></div>
<button type="submit" id="submit-from-jp">和暦から年齢を計算する</button>
<h3>西暦から年齢を計算する</h3>
<table>
<thead>
<tr>
<th>年</th>
<th>月</th>
<th>日</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="text" id="ce-year" pattern="\d*"></td>
<td><input type="text" id="ce-month" pattern="\d*"></td>
<td><input type="text" id="ce-day" pattern="\d*"></td>
</tr>
</tbody>
</table>
<div id="result-from-ce"></div>
<button type="submit" id="submit-from-ce">西暦から年齢を計算する</button>
年齢計算を実行
「和暦から年齢を計算する」「西暦から年齢を計算する」が押された時に計算を実行します。
jQueryオブジェクトの変数名には$を付けています。
$('#submit-jp').on('click', () => {
ageCalc('from-jp');
});
$('#submit-ce').on('click', () => {
ageCalc('from-ce');
});
function ageCalc(type) {
let era = '';
let year = '';
let month = '';
let day = '';
let $output;
let $submit;
let today = getNowDate('ce');
let ajaxData = {
method: 'durCal',
ep : 'bb',
itype : 'date',
itype2: 'date',
ival2 : today,
ical2 : '101.1',
out : 'json'
};
if (type === 'from-jp') {
era = $('#jp-era').val();
year = $('#jp-year').val();
month = $('#jp-month').val();
day = $('#jp-day').val();
$output = $('#result-from-jp');
$submit = $('#submit-from-jp');
ajaxData.ical = '1001.1';
ajaxData.ival = era + year + '年' + month + '月' + day + '日';
} else if (type === 'from-ce') {
year = $('#ce-year').val();
month = $('#ce-month').val();
day = $('#ce-day').val();
$output = $('#result-from-ce');
$submit = $('#submit-from-ce');
ajaxData.ical = '101.1';
ajaxData.ival = year + '-' + month + '-' + day;
}
$.ajax({
type : 'GET',
url : 'http://ap.hutime.org/cal/',
data : ajaxData,
timeout: 5000
}).done((data) => {
if (data[0] !== null) {
if (data[0].match(/-([0-9]+)-([0-9]+)-([0-9]+)/) || data[0].match(/\+0-0-0/)) {
$output.text('まだ誕生していません');
} else {
$output.text('現在の年齢:' + data[0].replace(/\+([0-9]+)-([0-9]+)-([0-9]+)/, '$1歳($2ヶ月$3日)'));
}
}
});
}
現在の日時を取得
HuTime Web APIからデータを取得するために必要な現在の日時を取得します。
これは対象点の始点の暦日等を表す文字列として使用します。
let today = getNowDate();
function getNowDate() {
let date = new Date();
let year = date.getFullYear();
let month = date.getMonth() + 1;
let day = date.getDate();
return year + '-' + month + '-' + day;
}
HuTime Web APIからデータを取得するための設定
データを取得するための設定をします。method(処理の種類)には期間を年数+月数+日数で表す「durCal」、ep(計測に使用する端点)には起点の始点~対象点の始点の「bb」、itype(暦日等の型)とitype2(終点の暦日等の型)には暦日の「date」、ival2(終点の暦日等を表す文字列)には実行時の日時、ical2(終点の暦法のID)にはユリウス/グレゴリオ暦(1582年改暦)の「101.1」、out(出力形式)には「json」を指定します。
let ajaxData = {
method: 'durCal',
ep : 'bb',
itype : 'date',
itype2: 'date',
ival2 : today,
ical2 : '101.1',
out : 'json'
};
if (type === 'from-jp') {
era = $('#jp-era').val();
year = $('#jp-year').val();
month = $('#jp-month').val();
day = $('#jp-day').val();
$output = $('#result-from-jp');
$submit = $('#submit-from-jp');
ajaxData.ical = '1001.1';
ajaxData.ival = era + year + '年' + month + '月' + day + '日';
} else if (type === 'from-ce') {
year = $('#ce-year').val();
month = $('#ce-month').val();
day = $('#ce-day').val();
$output = $('#result-from-ce');
$submit = $('#submit-from-ce');
ajaxData.ical = '101.1';
ajaxData.ival = year + '-' + month + '-' + day;
}
和暦から計算する場合は、ical(始点の暦法のID)には和暦(南朝)の「1001.1」、ival(始点の暦日等を表す文字列)には「元号○年○月○日」を指定します。
西暦から計算する場合は、ical(始点の暦法のID)にはユリウス/グレゴリオ暦(1582年改暦)の「101.1」、ival(始点の暦日等を表す文字列)には「年-月-日」を指定します。
HuTime Web APIから二つの暦日等の間の期間の長さを取得
Ajaxで対象のURLにリクエストします。取得に成功したら所定の個所にtextメソッドで表示しますが、その際にreplaceメソッドで「○歳○ヶ月○日」の表記になるように整えます。
また、取得した期間の長さがマイナスまたは0
の場合は「まだ誕生していません」と表示します。
$.ajax({
type : 'GET',
url : 'http://ap.hutime.org/cal/',
data : ajaxData,
timeout: 5000
}).done((data) => {
if (data[0] !== null) {
if (data[0].match(/-([0-9]+)-([0-9]+)-([0-9]+)/) || data[0].match(/\+0-0-0/)) {
$output.text('まだ誕生していません');
} else {
$output.text('現在の年齢:' + data[0].replace(/\+([0-9]+)-([0-9]+)-([0-9]+)/, '$1歳($2ヶ月$3日)'));
}
}
});
おわりに
当ツールでは暦法に基づく期間の計算ができるAPIを利用していますが、他にも様々な方法があるので、ツールを作成する際は「javascript 年齢計算」などで検索してみてください。
また、当サイトで利用している暦法に基づく期間の計算ができるAPIはHTTPSのサイトには未対応なので、混在コンテンツの警告がでるようなHTTPのサイトでは注意が必要です。
税率を設定して税込/税抜金額の消費税計算ができます。
文字数をカウントできます。
和暦と西暦を相互変換できます。
和暦または西暦から年齢を計算できます。
履歴書に必要な学校の入学年・卒業年を生年月日から計算できます。
キロ、マイル、グラム、華氏などの様々な単位を相互変換(換算)できます。
カラーコード(16進数)とRGB値(10進数)を相互変換できます。
Webタイマー(カウントダウン)です。ストップウォッチ機能もあります。
警察や消防などの緊急連絡先や電話番号案内などの電話番号を確認できます。
自分のWebブラウザーだけでタスク管理(ToDo)ができます。
エクセル関数を検索できます。
麻雀の和了時の点数(符数/翻数/役)を計算することができます。
Windows 10やExcelなどで使用できる便利なショートカットを確認できます。
消費電力、使用時間、使用日数、1kWh単価から電気料金を計算できます。
大文字・小文字・数字・記号を含むランダムなパスワードを生成できます。
名前 | きょうみくん |
---|---|
身長 | 181.1cm |
誕生日 | 1月21日 |
所属 | 日本PCサービス株式会社 |
コメント |
パソコン、インターネット、サーモン、ミルクティーが好きです。 エクセル家計簿の作り方など、技術的なコラムを書いているTech Blogも運営しています。 |