// -------------------------------------------------
//  生誕から何日で何○何ヶ月何日なのかスクリプト
//                                 xday.js v20041015
//                  by かず ( http://www.odoru.org/)
// -------------------------------------------------


function display()
{

Today=new Date();
Birth=new Date("Jun 21, 2004 08:33:00"); // 誕生日・時間


xdaycount();

var days = Math.floor( (Today.getTime() - Birth.getTime())/(24*60*60*1000) );
var time1= Math.floor( ((Today.getTime() - Birth.getTime())%(24*60*60*1000))/(60*60*1000) );
var time2= Math.floor( ((Today.getTime() - Birth.getTime())%(24*60*60*1000))/(60*1000))%60;
var time3= Math.floor( ((Today.getTime() - Birth.getTime())%(24*60*60*1000))/1000)%60%60;
var hyouji= xdaycount();

document.f.days.value = "生誕"+days+"日(" + hyouji + ")と"+time1+"時間"+time2+"分"+time3+"秒記念"
tid = setTimeout('display()', 1000)
}

function xdaycount()
{

var mySec = Today.getTime() - Birth.getTime();

var myDay = Math.floor(mySec / (1000*60*60*24));
myDay = Math.abs(myDay);


var yy1 = Today.getYear();
var mm1 = Today.getMonth() + 1;
var dd1 = Today.getDate();

var yy2 = Birth.getYear();
var mm2 = Birth.getMonth() + 1;
var dd2 = Birth.getDate();

if ( mySec >= 0 ) {
	
	yy3 = yy1 - yy2;
	
	mm3 = mm1 - mm2;
	if (mm3 < 1){
		yy3 = yy3 -1;
		mm3 = mm3 + 12;
	}
	
	if (mm3 > 11){
		yy3 = yy3 + 1;
		mm3 = 0;
	}
	
	dd3 = dd1 - dd2;
	if (dd3 < 0){
		mm1 = mm1 - 1;
		if (mm1 < 1){mm1 = 12;}
		maxday(yy1+"/"+mm1);
		dd3 = dd3 + endday;
		mm3 = mm3 -1;
	}
	
} else {

	yy3 = yy2 - yy1;
	
	mm3 = mm2 - mm1;
	if (mm3 < 1){
		yy3 = yy3 -1;
		mm3 = mm3 + 12;
	}
	
	dd3 = dd2 - dd1;
	if (dd3 < 0){
		mm2 = mm2 -1;
		if (mm2 < 1){mm2 = 12;}
		maxday(yy2+"/"+mm2);
		dd3 = dd3 + endday;
		mm3 = mm3 -1;
	}
	
}


	return (  yy3 + "才" + mm3 + "ヶ月と" + dd3 + "日" );

}

function maxday(nengetsu) //* yyyy年mm月の末日を求める
{

var NenGetsu = nengetsu.split("/");

var yyyy = NenGetsu[0];
var mm = NenGetsu[1];
mm = mm-1;

var maxday = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
if ((yyyy % 4 == 0 && yyyy % 100 != 0) || yyyy % 400 == 0) { maxday[1] = maxday[1] + 1; }

endday = maxday[mm]
	
}
