和暦から西暦へ変換

和暦から西暦へ変換するやり方をご紹介します。

関数定義

JavaScript

/**
 * 和暦から西暦へ変換
 * @param {string} name 和暦の名称
 * @param {number} year 変換する和暦
 * @return {number|false} 変換された西暦を返す
 */
var JCToAD = function(name, year) {
	if (!name || !year) return false;

	if (typeof year === 'string') {
		year = Number(year.replace('年', ''));
	}

	if (typeof year !== 'number' || year === NaN) return false;
	if (year <= 0) return false;

	/**
	 * 和暦の一覧
	 * @property {string} object.name 和暦名
	 * @property {number|false} object.year 年数(不明の場合はfalse)
	 * @property {number} object.startYear 和暦が開始された西暦
	 */
	var data = [
		{
			name      : '令和',
			year      : false,
			startYear : 2018
		},
		{
			name      : '平成',
			year      : 31,
			startYear : 1988
		},
		{
			name      : '昭和',
			year      : 64,
			startYear : 1925
		},
		{
			name      : '大正',
			year      : 15,
			startYear : 1911
		},
		{
			name      : '明治',
			year      : 45,
			startYear : 1867
		},
		{
			name      : '慶応',
			year      : 4,
			startYear : 1864
		}
	];

	for (var i = 0, len = data.length; i < len; i++) {
		if ((name === data[i].name) && (data[i].year === false || year <= data[i].year)) {
			return data[i].startYear + year;
		}
	}

	return false;
};

使い方

構文

var result = JCToAD( jpCalendarName, year );

引数

引数名 説明
jpCalendarName
必須
string 和暦の名称
year
必須
number 変換する和暦

戻り値

変換に成功した場合は変換された数値、失敗した場合はfalseを返します。

JavaScript

var result = JCToAD('大正', 14);

alert(result); // 1925

JavaScript逆引きリファレンス一覧へ戻る