Skip to content

Instantly share code, notes, and snippets.

@ledsun
Created July 23, 2012 04:51
Show Gist options
  • Select an option

  • Save ledsun/3162009 to your computer and use it in GitHub Desktop.

Select an option

Save ledsun/3162009 to your computer and use it in GitHub Desktop.
JavaScript 西暦→和暦の変換処理
function toWareki(year,month,day)
{
var wareki = "";
year = Number (year);
if (year == 1868)
{
/* 9月8日から明治元年 */
/* 誕生日がここの人はいないだろうから細かくは気にしない */
wareki = '明治元年';
}
else if (1868 < year && year < 1912)
{
year = year - 1867;
wareki = '明治' + year + '年';
}
else if (year == 1912)
{
year = year - 1867;
// 明治46年7月30日まで明治
// 明治46年7月31日から大正
if(month < 7 || (month == 7 && day < 31)){
wareki = '明治' + year + '年';
} else {
wareki = '大正元年';
}
}
else if (1912 < year && year < 1926)
{
year = year - 1911;
wareki = '大正' + year + '年';
}
else if (year == 1926)
{
year = year - 1911;
if(month < 12 || (month == 12 && day < 25)){
wareki = '大正' + year + '年';
} else {
wareki = '昭和元年';
}
}
else if (1926 < year && year < 1989)
{
year = year - 1925;
wareki = '昭和' + year + '年';
}
else if (year == 1989)
{
year = year - 1925;
if(month == 1 && day < 7){
wareki = '昭和' + year + '年';
} else {
wareki = '平成元年';
}
}
else if (1989 < year)
{
year = year - 1988;
wareki = '平成' + year + '年';
}
else
{
wareki = '--年';
}
return wareki + month + "月" + day + "日";
}
@shunwen

shunwen commented Jul 23, 2012

Copy link
Copy Markdown

Konichiwa.
The last else-if should be else if (1989 < year).

@ledsun

ledsun commented Jul 23, 2012

Copy link
Copy Markdown
Author

You are right. I fixed.
Thank you!

@shunwen

shunwen commented Jul 23, 2012

Copy link
Copy Markdown

( ゚Д゚)σ あ...すみません、問題がも一つあります。1989は平成元年、でも1990は平成二年ですか?
else if (1989 < year) はOKです。year = year -1989 は違いますよ。
year = year -1988 the original code was correct。

@ledsun

ledsun commented Jul 23, 2012

Copy link
Copy Markdown
Author

なるほど!その通りです。直しました。
ありがとうございます。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment