戻る

日付の加減算
Javascriptでは今日の日付や指定の日付に対して日付を加減算した結果を取得できます。
下記サンプルです。

getDateResult();
function getDateResult()
{
	//今日の日付
	let date = new Date();
	let tmp ="";
	tmp += "[今日の日付]<br>";
	tmp+=date.getFullYear() + "/" 
	+ (date.getMonth() + 1) + "/" 
	+ date.getDate() +"<br>";

	//明日にするためには今日の日付に1を加算します。
	date.setDate(date.getDate() + 1);

	tmp += "[明日の日付]<br>";
	tmp += date.getFullYear() + "/" 
	+ (date.getMonth() + 1) + "/" 
	+ date.getDate() +"<br>";

	//今日の日付
	date = new Date();
	//昨日にするためには今日の日付に1を減算します。
	date.setDate(date.getDate() - 1);
	tmp += "[昨日の日付]<br>";
	tmp+=date.getFullYear() + "/" 
	+ (date.getMonth() + 1) + "/" 
	+ date.getDate() +"<br>";

	const obj=document.getElementById("date1");
	obj.innerHTML=tmp;
}
[出力結果]

日付の加減算を使用した選択問題
/*
num:ボタン選択をしたイベントの管理番号
0:左側
1:中央
2:右側
*/
function func(num)
{
	const ans=document.getElementById("answerNo");
	let txt="";
	if(ans.value ==num)
	{
		txt="正解です。";
	}
	else
	{
		txt="不正解です。";
	}
	//結果をメッセージで表示します。
	alert(txt);
	//正解の日付を表示<div>タグを表示状態にします
	document.getElementById("lbl1").style.display='block';
	document.getElementById("lbl2").style.display='block';
}
/*
乱数を返す処理
(例)
0-2なら3
0-9までなら10
*/
function random(num)
{
	return Math.floor(Math.random() * num);
}
/*
0から2までの3個の中から1個ををランダムに取得して正解の日付として使用します。
0:昨日
1:今日
2:明日
*/
let correct=random(3);

let txt="";
switch(correct)
{
	case 0:
		txt="昨日の日付を選択してください。";
		break;
	case 1:
		txt="今日の日付を選択してください。";
		break;
	default://case 2:
		txt="明日の日付を選択してください。";
		break;
}
document.getElementById("problem").innerHTML=txt;

let dateAdjust=0;
dateAdjust=correct - 1;
//正解の日付
date = new Date();
date.setDate(date.getDate() + dateAdjust);
//divタグに正解の日付を設定します
document.getElementById("lbl2").innerHTML=dateFormat(date);
//正解の日付の位置を0から2までの3個の中から1個ををランダムに取得して決めます。
//0:左側
//1:中央
//2:右側
let buttonPosition=random(3);

//正解のボタン番号を格納します
document.getElementById("answerNo").value=buttonPosition;

let num=0;
switch(buttonPosition)
{
	case 0:
		num=2;
		break;
	case 1:
		num=1;
		break;
	default://case 2:
		num=0;
		break;
}

//答えの日付から右側の日付となるように調整します
/*
ボタンイベントのjavascipt引数に下記の値を設定しておきます
そして正解判定はhiddenタグのanswerNoと比較判定します。
[引数に使用する値]
左側:0
中央:1
右側:2
*/
const left=document.getElementById("btnLeft");//左側
const center=document.getElementById("btnCenter");//中央
const right=document.getElementById("btnRight");//右側
//今日の日付
date = new Date();
date.setDate(date.getDate()+dateAdjust);
date.setDate(date.getDate()+num);
date.setDate(date.getDate());//右側
right.innerHTML=dateFormat(date);
date.setDate(date.getDate() - 1);
center.innerHTML=dateFormat(date);//中央
date.setDate(date.getDate() - 1);
left.innerHTML=dateFormat(date);//左側
//Dateクラスオブジェクトの値を使用して一定の日付書式にして返します
function dateFormat(date)
{
	let tmp ="";
	return date.getFullYear() + "/" 
	+ (date.getMonth() + 1) + "/" 
	+ date.getDate();
}
[日付の問題]


戻る
back

Adding and Subtracting Dates
Using Javascript, get the result of adding or subtracting a date from today's date or a specified date.
Below is a sample.

getDateResult();
function getDateResultEn()
{
	//today date
	let date = new Date();
	let tmp ="";
	tmp += "[today date]<br>";
	tmp += dateFormat(date.getFullYear(),date.getMonth(),date.getDate());
	tmp += "<br>";
	/*
	tmp+=date.getFullYear() + "/" 
	+ (date.getMonth() + 1) + "/" 
	+ date.getDate() +"<br>";
	*/

	//To go to tomorrow, add 1 to today's date.
	date.setDate(date.getDate() + 1);

	tmp += "[tomorrow date]<br>";
	tmp += dateFormat(date.getFullYear(),date.getMonth(),date.getDate());
	tmp += "<br>";
	/*
	tmp += date.getFullYear() + "/" 
	+ (date.getMonth() + 1) + "/" 
	+ date.getDate() +"<br>";
	*/

	//today date
	date = new Date();
	//To make it yesterday, subtract 1 from today's date.
	date.setDate(date.getDate() - 1);
	tmp += "[yesterday date]<br>";
	tmp += dateFormat(date.getFullYear(),date.getMonth(),date.getDate());
	tmp += "<br>";
	/*
	tmp+=date.getFullYear() + "/" 
	+ (date.getMonth() + 1) + "/" 
	+ date.getDate() +"<br>";
	*/
	const objEn=document.getElementById("date1En");
	objEn.innerHTML=tmp;
}
//Returns a date in a fixed format using the value of a Date class object
function dateFormat(year,month,day)
{
	return changeMonth(month)+ " " 
	+ day + "th " 
	+ ", " + year;
}
function changeMonth(month)
{
	let txt="";
	switch(month)
	{
		case 0:
			txt="Jan";
			break;
		case 1:
			txt="Feb";
			break;
		case 2:
			txt="Mar";
			break;
		case 3:
			txt="Apr";
			break;
		case 4:
			txt="May";
			break;
		case 5:
			txt="Jun";
			break;
		case 6:
			txt="Jul";
			break;
		case 7:
			txt="Aug";
			break;
		case 8:
			txt="Sep";
			break;
		case 9:
			txt="Oct";
			break;
		case 10:
			txt="Nov";
			break;
		case 11:
			txt="Dec";
			break;
	}
	return txt;
}
[Output result]

Multiple choice questions using addition and subtraction of dates
/*
num:Event number for which the button wa choose
0:left
1:center
2:right
*/
function funcEn(num)
{
	const ans=document.getElementById("answerNoEn");
	let txt="";
	if(ans.value ==num)
	{
		txt="correct";
	}
	else
	{
		txt="incorrect";
	}
	//The result will be displayed in a message.
	alert(txt);
	//show the correct answer date.<div>tag will be displayed.
	document.getElementById("lbl1En").style.display='block';
	document.getElementById("lbl2En").style.display='block';
}
/*
process to return a dondom number
ex.)
if it is between 0 and 2, it is 3.
if it is between 0 and 9, it is 10.

*/
function randomEn(num)
{
	return Math.floor(Math.random() * num);
}
/*
One of the three numbers between 0 and 2 will be randomly choose and used as the correct date.
0:yesterday
1:today
2:tomorrow
*/
let correctEn=randomEn(3);


let txtEn="";
switch(correctEn)
{
	case 0:
		txtEn="choose yesterday's date";
		break;
	case 1:
		txtEn="choose today's date";
		break;
	default://case 2:
		txtEn="choose tomorrow's date";
		break;
}
document.getElementById("problemEn").innerHTML=txtEn;
//adjust the value to use fro the date
//if it was yesterday, decrement the value from 0 to -1.

let dateAdjustEn=0;
dateAdjustEn=correctEn-1;
//set the correct date
date = new Date();
date.setDate(date.getDate() + dateAdjustEn);
//set the correct date in a div tag
document.getElementById("lbl2En").innerHTML=dateFormatEn(date);
//determine the position of the correct date by randomly choosing one of the three values from 0 to 2.
//0:left
//1:center
//2:right
let buttonPositionEn=randomEn(3);

//save the correct button number.
document.getElementById("answerNoEn").value=buttonPositionEn;

let numEn=0;
switch(buttonPositionEn)
{
	case 0:
		numEn=2;
		break;
	case 1:
		numEn=1;
		break;
	default://case 2:
		numEn=0;
		break;
}
//adjust the date so that it is to the right of the answer date.
/*
set the following value as the Javascript argument for the button event.
the correct answer will be determined by comparing it with the answerNo in the hidden tag.
[Value to use for argument]
left:0
center:1
right:2
*/
const leftEn=document.getElementById("btnLeftEn");//left
const centerEn=document.getElementById("btnCenterEn");//center
const rightEn=document.getElementById("btnRightEn");//right
//today date
date = new Date();
date.setDate(date.getDate()+dateAdjustEn);
date.setDate(date.getDate()+numEn);
date.setDate(date.getDate());//right
rightEn.innerHTML=dateFormatEn(date);
date.setDate(date.getDate() - 1);
centerEn.innerHTML=dateFormatEn(date);//center
date.setDate(date.getDate() - 1);
leftEn.innerHTML=dateFormatEn(date);//left
//Returns a date in a fixed format using the value of a Date class object
function dateFormatEn(date)
{
	let tmp ="";
/*
	return date.getFullYear() + "/" 
	+ (date.getMonth() + 1) + "/" 
	+ date.getDate();
*/
	return changeMonth(date.getMonth())+ " " 
	+ date.getDate() + "th " 
	+ ", " + date.getFullYear();
}
function changeMonth(month)
{
	let txt="";
	switch(month)
	{
		case 0:
			txt="Jan";
			break;
		case 1:
			txt="Feb";
			break;
		case 2:
			txt="Mar";
			break;
		case 3:
			txt="Apr";
			break;
		case 4:
			txt="May";
			break;
		case 5:
			txt="Jun";
			break;
		case 6:
			txt="Jul";
			break;
		case 7:
			txt="Aug";
			break;
		case 8:
			txt="Sep";
			break;
		case 9:
			txt="Oct";
			break;
		case 10:
			txt="Nov";
			break;
		case 11:
			txt="Dec";
			break;
	}
	return txt;
}
[date problem]



back



著作権情報
ホームページおよプリ等に掲載されている情報等については、いかなる保障もいたしません。
ホームページおよびアプリ等を通じて入手したいかなる情報も複製、販売、出版または使用させたり、
または公開したりすることはできません。
当方は、ホームペーよびアプリ利用したいかなる理由によっての障害等が発生しても、
その結果ホームページおよびアプリ等を利用された本人または他の第三者が被った損害について
一切の責任を負わないものとします。