説明
指定した経過日数を求めるには現在の日付を示す経過秒数(1970年1月1日からの経過ミリ秒)と、求める日数を示すミリ秒を加算/減算します。この値をDate()のパラメータとして指定し新たなオブジェクトとして生成します。あとは、getYear()やgetMonth()などで日付情報を読み出すことができます。
Dateオブジェクトは内部では1970年1月1日からの経過ミリ秒で計算されるため、このような方法で手軽に日数を計算することができます。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>JavaScript Sample</title>
<link rel="stylesheet" type="text/css" href="main.css" media="all">
<script type="text/javascript" src="main.js"></script>
</head>
<body>
<h1>n日後を求める</h1>
<form action="./check.cgi" method="get" name="mainForm">
日数:<input type="text" name="dateCount" id="dateCount" value="3">
<input type="button" id="checkButton" value="n日後を求める">
</form>
<div id="result">結果:</div>
</body>
</html>
window.onload = function(){
document.getElementById("checkButton").onclick = function(){
var dc = document.getElementById("dateCount").value;
dc = parseInt(dc);
if (isNaN(dc)) { alert("入力エラー"); return; }
var dateObj = new Date();
var today = dateObj.getTime();
var msec = dc * (24 * 60 * 60 * 1000);
var newday = new Date(today+msec);
var y = newday.getFullYear();
var m = newday.getMonth() + 1;
var d = newday.getDate();
var yb = "日月火水木金土".charAt(newday.getDay());
document.getElementById("result").innerHTML = dc+"日後は「"+y+"年"+m+"月"+d+"日("+yb+")です";
}
}