2009年10月18日日曜日

和暦→西暦+曜日算出

よくよく考えてみると、
西暦に戻すと、月日は関係ないのかも。

ということで、一気に仕上げた。

曜日まで出すよ。



$(function(){
$('#convertButton').click(function(){
var d = $('#date_text').val();
$('#result').html(d.getSeireki('漢字', true));
});
});

var weeks = ["日","月","火","水","木","金","土"];

String.prototype.getSeireki = function(pattern, day) {
var ret = this.match(/[0-9]+/g);
var wareki = '';
var year = -1;
var month = -1;
var date = -1;
if (ret.length == 1) {
year = ret[0];
wareki = this.substring(0,this.indexOf(ret[0]));
} else if (ret.length == 2) {
year = ret[0];
wareki = this.substring(0,this.indexOf(ret[0]));
month = ret[1];
} else if (ret.length == 3) {
year = ret[0];
wareki = this.substring(0,this.indexOf(ret[0]));
month = ret[1];
date = ret[2];
} else {
return '';
}

var result = '';
if ("昭和" == wareki || "S" == wareki) {
result = parseInt(year) + 1925;
} else if ("平成" == wareki || "H" == wareki) {
result = parseInt(year) + 1988;
} else if ("大正" == wareki || "T" == wareki) {
result = parseInt(year) + 1911;
} else if ("明治" == wareki || "M" == wareki) {
result = parseInt(year) + 1867;
}

var divYear = '';
var divMonth = '';
var divDate = '';
if (pattern == undefined || pattern == '漢字') {
pattern = 1;
divYear = '年';
divMonth = '月';
divDate = '日';
} else if (pattern == '-') {
pattern = 2;
divYear = '-';
divMonth = '-';
divDate = '';
} else if(pattern == '/') {
pattern = 3;
divYear = '/';
divMonth = '/';
divDate = '';
} else {
pattern = 3;
}

if (ret.length == 1) {
return result + divYear;
} else if (ret.length == 2) {
return result + divYear + month + divMonth;
} else if (ret.length == 3) {
var dispDay = '';
if (day == true) {
var strDate = result + '/' + (month) + '/' + date;
var d = new Date(strDate);
var youbi = weeks[d.getDay()];
if (pattern == 1) {
dispDay = ' ' + youbi + '曜日';
} else if (pattern == 2 || pattern == 3) {
dispDay = ' (' + youbi + ')';
}
}
return result + divYear + month + divMonth + date + divDate + dispDay;
}
}

0 件のコメント:

コメントを投稿