
// 引数arg_yearで指定された年のサマータイム開始時刻を内部表現で返す。
//
function GetDstStart(arg_year) {
	var dst_start = new Date(arg_year, 2, 31, 1, 0, 0); // ３月３１日１時から
	for (var i = 1; i <= 7; i++) {
		dst_start.setDate(i);
		if (0 == dst_start.getDay()) {
			break;
		}
	}
	return dst_start.getTime();
}

// 引数arg_yearで指定された年のサマータイム終了時刻を内部表現で返す。
//
function GetDstEnd(arg_year) {
	var dst_end = new Date(arg_year, 9, 31, 0, 0, 0);// １０月３１日１時まで
	for (var i = 31; i > 24; i--) {
		dst_end.setDate(i);
		if (0 == dst_end.getDay()) {
			break;
		}
	}
	return dst_end.getTime();
}


// まず今が何年か調べます。
today = new Date();
year = today.getFullYear();
if (year < 100) {
	year += 1900;
}
// ここまでで、yearに今年の年(1998など)が入っています。

var tz_offset = today.getTimezoneOffset();



pos_start = GetDstStart(year);
pos_end = GetDstEnd(year);

tz_ch = 8 * 60; // GMT+9
tz_it = 1 * 60; // GMT-0500


function nowat(now_t, tz, st) {
	var hour, min, sec;

	var pos_t = now_t + (tz_offset + tz) * 60 * 1000;

	if (0 != st) {
		// サマータイム処理
		if ((pos_start <= pos_t) && (pos_end > pos_t)) {
			pos_t += 60 * 60 * 1000;
		}
	}			
	var t = new Date();
	t.setTime(pos_t);
	

	hour = t.getHours();
	min = t.getMinutes();
	sec = t.getSeconds();
	if (hour < 10) {
		hour = "0" + hour;
	}
	if (min < 10) {
		min = "0" + min;
	}
	if (sec < 10) {
		sec = "0" + sec;
	}
	return t.getFullYear()+"/"+eval(t.getMonth()+1)+"/"+eval(t.getDate())+" "+hour + ":" + min; // +":"+sec +" "; 
}

function update_watch() {
	now = new Date();
	n_t = now.getTime();
//	document.forms[0].test.value = n_t+": "+now.getYear()+"/"+eval(now.getMonth()+1)+"/"+eval(now.getDay()+1)+new Date("month day, year hours:minutes:seconds");

	ch = nowat(n_t, tz_ch, 0);
	it = nowat(n_t, tz_it, 1);

	document.forms[0].beijing.value = ch;
	document.forms[0].marche.value = it;

	setTimeout('update_watch()', 999); // 1000msec = 1sec
}

