メイン date.html Last modified: Sep 01, 2009
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;CHARSET=EUC-JP">
<link rel="shortcut icon" href="../favicon.ico">
<title>JavaScript</title>
<script language="JavaScript">
<!--
var week = new Array("日", "月", "火", "水", "木", "金", "土")
var sy = 1583
function dw(j)
{
return week[(j+1)%7]
}
function Int(x)
{
return Math.floor(x+(x < 0 ? 1 : 0))
}
function J_day(iy, jm, kd)
{
var tmp = jm < 3 ? -1 : 0
return kd-32075+Int( 1461*(iy+4800+tmp)/4 )+Int( 367*(jm-2-tmp*12)/12 )-Int( 3*( Int( (iy+4900+tmp)/100 ) )/4 )
// return kd-32075+Int( 1461*(iy+4800+Int( (jm-14)/12) )/4 )+Int( 367*(jm-2-Int( (jm-14)/12 )*12)/12 )-Int( 3*( Int( (iy+4900+Int( (jm-14)/12 ))/100 ) )/4 )
}
function date(jul)
{
var l, n, iy, jm, kd
l = jul+68569
n = Int(4*l/146097)
l -= Int((146097*n+3)/4)
iy = Int(4000*(l+1)/1461001)
l -= Int(1461*iy/4)-31
jm = Int(80*l/2447)
kd = l-Int(2447*jm/80)
l = Int(jm/11)
jm = jm+2-12*l
iy = 100*(n-49)+iy+l
return iy+"/"+jm+"/"+kd
}
function invalidInt(x, ll, ul)
{
var temp = parseFloat(x)
if (isNaN(temp)) {
alert("数値でないか,入力が不完全です")
return 1
}
else if (temp != parseInt(x) || temp <= 0) {
alert("年月日などは正整数でなくてはいけません")
return 1
}
else if (temp < ll || temp > ul) {
alert("入力値は "+temp+" ですが,"+ll+" 以上,"+ul+" 以下でなくてはなりません")
return 1
}
return 0
}
function calc(f)
{
var y1, m1, d1, w1, j1, y2, m2, d2, w2, j2, diff
f.diff.value = f.w1.value = f.w2.value = ""
if (invalidInt(f.y1.value, sy, 9999)) return
if (invalidInt(f.m1.value, 1, 12)) return
if (invalidInt(f.d1.value, 1, 31)) return
if (invalidInt(f.y2.value, sy, 9999)) return
if (invalidInt(f.m2.value, 1, 12)) return
if (invalidInt(f.d2.value, 1, 31)) return
y1 = eval(f.y1.value)
m1 = eval(f.m1.value)
d1 = eval(f.d1.value)
y2 = eval(f.y2.value)
m2 = eval(f.m2.value)
d2 = eval(f.d2.value)
j1 = J_day(y1, m1, d1)
j2 = J_day(y2, m2, d2)
if (y1+"/"+m1+"/"+d1 != date(j1)) {
alert(y1+"/"+m1+"/"+d1+" などというような日は存在しないのでは?")
return
}
if (y2+"/"+m2+"/"+d2 != date(j2)) {
alert(y2+"/"+m2+"/"+d2+" などというような日は存在しないのでは?")
return
}
diff = j2-j1
f.diff.value = diff
f.w1.value = dw(j1)
f.w2.value = dw(j2)
}
//-->
</script>
</head>
<body bgcolor="#ffffff">
<form name=Date>
<font size="+2"><b>日数,曜日などの計算</b></font> <a href="src/date.html"><img src="png/src.png" width=35 height=11 alt="src" align=top></a> Last modified: Jun 01, 2006<hr noshade><p>
<font color="#ff0000" size="+2">以下のプログラムのサポートは終了しました。自己責任でお使い下さい。</font>
<script language="JavaScript">
<!--
//-->JavaScript がサポートされていないブラウザですか?
</script>
起算年月日 <input name="y1" value="1950" size=5>年 <input name="m1" value="6" size=3>月 <input name="d1" value="29" size=3>日 (<input name="w1" value="木" size=2>) <input type="button" name="clear" value="起算年月日欄クリア" onClick="this.form.y1.value=this.form.m1.value=this.form.d1.value=this.form.w1.value=this.form.diff.value=''"><br>
満了年月日 <input name="y2" value="2001" size=5>年 <input name="m2" value="1" size=3>月 <input name="d2" value="1" size=3>日 (<input name="w2" value="月" size=2>) <input type="button" name="clear" value="満了年月日欄クリア" onClick="this.form.y2.value=this.form.m2.value=this.form.d2.value=this.form.w2.value=this.form.diff.value=''"><br>
経過日数 <input name="diff" value="18449" size=11>日 <input type="button" name="calcurate" value="経過日数などの計算" onClick="calc(this.form)">
<p><hr width="80%" align=left><p>
<ol>
<li> 起算年月日,満了年月日を入力して下さい。
<li> 「計算」ボタンをクリックすると,起算年月日,満了年月日の曜日とその間の日数を表示します。
<li> 1582 年以前の値は指定できません。<a href="untiku.html"><b>蘊蓄</b></a>
</ol>
</form>
<p><hr noshade>
<img src="../gra/button3.png" width=9 height=9 alt="・"> <A HREF="javascript:history.go(-1)">直前のページへ戻る</A> <img src="../gra/button3.png" width=9 height=9 alt="・"> <a href="../mail.html">E-mail to Shigenobu AOKI</a>
<p><center><IMG SRC="../gra/ume5.png" width=121 height=37 ALT="Made with Macintosh"></center>
</body>
</html>
直前のページへ戻る E-mail to Shigenobu AOKI