メイン 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

Made with Macintosh