「和歴→西暦変換」javascriptソース


<SCRIPT language="JavaScript">
<!--
function fm_submit() {
with (document.fm) {
if (g.value == '') {
alert('元号を指定してください');
g.focus();
return false;
}
if (e.value == '') {
alert('年を指定してください');
e.focus();
return false;
}
if (m.value == '') {
alert('月を指定してください');
m.focus();
return false;
}
if (d.value == '') {
alert('日を指定してください');
d.focus();
return false;
}
if (!date_chk(y.value,m.value,d.value)) {
alert("日付を正しく入力してください");
y.focus();
return false;
}
alert("西暦に直すと["+y.value+"/"+m.value+"/"+d.value+"]")
}
}

function gnen_check(gen,seireki,gennen){
gengou = new Array();
seirekinen = new Array();
max_nen = new Array();
seirekinen['平成'] =1989;
max_nen['平成'] =99;
seirekinen['昭和'] =1926;
max_nen['昭和'] =64;
seirekinen['大正'] =1912;
max_nen['大正'] =15;
seirekinen['明治'] =1868;
max_nen['明治'] =45;

with (document.forms[0]) {
if (elements[gennen].value!="") {
if(num_check(elements[gennen])){
return;
}
if (Number(elements[gennen].value)< 1 ||
Number(elements[gennen].value)>max_nen[elements[gen].value]) {
alert((elements[gen].value)+"は、1〜"+(max_nen[elements[gen].value])+"の
範囲で入力してください");
elements[gennen].focus();
return
}
elements[seireki].value = Number(seirekinen[elements[gen].value]) +
Number(elements[gennen].value) -1;
return
} else {
elements[seireki].value = '';
}
}
}

function num_check(in_str){
//数字のチェック
if (in_str.value!="") {
if(in_str.value.match(/¥D/)){
alert("半角数字を入力して下さい");
in_str.value = "";
in_str.focus();
return true;
}
}
return false;
}

function gengo_clr(gen,seireki,gennen){
//元号を変更した場合に、年をクリアする
with (document.forms[0]) {
if (elements[gen].value!="") {
elements[seireki].value = "";
elements[gennen].value = "";
}
}
}


function tuki_check(in_str){
//日付の「月」をチェックする。月だけで可能なチェックのみ。
//末日が月で変わるなどのチェックは送信時に行う
if (in_str.value!="") {
if(num_check(in_str)){
return
}
if (Number(in_str.value)< 1 || Number(in_str.value)>12) {
alert("月は、1〜12の範囲で入力してください");
in_str.focus();
return
}

}
}

function hi_check(in_str){
//日付の「日」をチェックする。日だけで可能なチェックのみ。
//末日が月で変わるなどのチェックは送信時に行う
if (in_str.value!="") {
if(num_check(in_str)){
return
}
if (Number(in_str.value)< 1 || Number(in_str.value)>31) {
alert("日は、1〜31の範囲で入力してください");
in_str.focus();
return
}
}
}

function date_chk(y,m,d) {
//年、月、日で入力された数値が、日付として正しいかどうかをチェックする
//閏年などもチェック
dd = new Date(y, m-1, d);

ny = dd.getYear();
if (ny < 2000) { ny += 1900; }
nm = dd.getMonth()+1;
nd = dd.getDate();

if (y==ny && m==nm && d==nd) {
return true
} else {
return false
}
}
//-->
</SCRIPT>