Skip to content

Instantly share code, notes, and snippets.

@ledsun
Created July 23, 2012 04:51
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ledsun/3162009 to your computer and use it in GitHub Desktop.
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
Copy link

shunwen commented Jul 23, 2012

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

@ledsun
Copy link
Author

ledsun commented Jul 23, 2012

You are right. I fixed.
Thank you!

@shunwen
Copy link

shunwen commented Jul 23, 2012

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

@ledsun
Copy link
Author

ledsun commented Jul 23, 2012

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

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