输入某年某月某日,判断这一天是这一年的第几天?(JavaScript)

本文介绍如何使用JavaScript编程来解决一个问题:给定一个年份、月份和日期,确定这一天是当年的第几天。通过日期对象和数学运算,可以轻松计算出这个信息。这对于日期相关的程序开发非常有用。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/test.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		年:<input type="text" id="year">
		月:<input type="text" id="month">
		日:<input type="text" id="day">
		<button type="button" id="btn">提交</button>
		此日期在该年中的天数为:<input type="text" id="days">
	</body>
</html>
<script type="text/javascript">
	let oYear = document.getElementById("year");
	let oMonth = document.getElementById("month");
	let oDay = document.getElementById("day");
	let oDays = document.getElementById("days");
	let oBtn = document.getElementById("btn");
    function test(){
			var sum = 0;
			var su = 0;
			var nn = +oT1.value;
			for(nn=1;nn<=+oT1.value;nn++){
				if(nn%2==0){
					sum += 1/nn;
				}else{
					su += 1/nn;
				}
			}
			oT2.value = su;
			oT3.value = sum;
		}
function test2(){
		var a = +oT1.value;
	var b = 1;
	for(var sn = 1;sn<=a;sn++){
		b *= sn;
		oT2.value = b;
	}
}
function daysTwo(){
	var da =  +oDays.value;
	var dda = 0;
	if(+oYear.value%4==0&&+oYear.value%100!=0||+oYear.value%400==0){
		switch(+oMonth.value-1){
			case 12:
			dda = dda + 31;
			case 11:
			dda = dda +  30;
			case 10:
			dda = dda +  31;
			case 9:
			dda = dda +  30;
			case 8:
			dda = dda +  31;
			case 7:
			dda = dda +  31;
			case 6:
			dda = dda +  30;
			case 5:
			dda = dda +  31;
			case 4:
			dda = dda +  30;
			case 3:
			dda = dda +  31;
			case 2:
			dda = dda +  29;
			case 1:
			dda = dda +  31;
			case 0:
			dda = dda +  0;
			da = +oDay.value + dda;
			oDays.value = da;
		}
	}else{
		switch(+oMonth.value-1){
			case 12:
				dda = dda + 31;
				case 11:
				dda = dda +  30;
				case 10:
				dda = dda +  31;
				case 9:
				dda = dda +  30;
				case 8:
				dda = dda +  31;
				case 7:
				dda = dda +  31;
				case 6:
				dda = dda +  30;
				case 5:
				dda = dda +  31;
				case 4:
				dda = dda +  30;
				case 3:
				dda = dda +  31;
				case 2:
				dda = dda +  28;
				case 1:
				dda = dda +  31;
				case 0:
				dda = dda +  0;
				da = +oDay.value + dda;
				oDays.value = da;
			}
	}
}
function daysOne1(){
	var da =  +oDays.value;
	var dda = 0;
	switch(+oMonth.value-1){
		case 12:
		dda = dda + 31;
		case 11:
		dda = dda +  30;
		case 10:
		dda = dda +  31;
		case 9:
		dda = dda +  30;
		case 8:
		dda = dda +  31;
		case 7:
		dda = dda +  31;
		case 6:
		dda = dda +  30;
		case 5:
		dda = dda +  31;
		case 4:
		dda = dda +  30;
		case 3:
		dda = dda +  31;
		case 2:
		dda = dda +  29;
		case 1:
		dda = dda +  31;
		case 0:
		dda = dda +  0;
		da = +oDay.value + dda;
		oDays.value = da;
	}
}
function daysOne2(){
	var da =  +oDays.value;
	var dda = 0;
	switch(+oMonth.value-1){
		case 12:
		dda = dda + 31;
		case 11:
		dda = dda +  30;
		case 10:
		dda = dda +  31;
		case 9:
		dda = dda +  30;
		case 8:
		dda = dda +  31;
		case 7:
		dda = dda +  31;
		case 6:
		dda = dda +  30;
		case 5:
		dda = dda +  31;
		case 4:
		dda = dda +  30;
		case 3:
		dda = dda +  31;
		case 2:
		dda = dda +  28;
		case 1:
		dda = dda +  31;
		case 0:
		dda = dda +  0;
		da = +oDay.value + dda;
		oDays.value = da;
	}
}
	oBtn.onclick = function(){
		if (+oYear.value<=2040&&+oYear.value>=1980){
				if (+oMonth.value<=12&&+oMonth.value>=1){
					if(+oMonth.value==1||+oMonth.value==3||+oMonth.value==5||+oMonth.value==7||+oMonth.value==8||+oMonth.value==10||+oMonth.value==12){
						if (+oDay.value<=31&&+oDay.value>=1){
						daysTwo();//判断闰年再计算天数
						} else{
						alert("请输入正确日期");
						}
					}
					if(+oMonth.value==4||+oMonth.value==6||+oMonth.value==9||+oMonth.value==11){
						if (+oDay.value<=30&&+oDay.value>=1){
						daysTwo();//判断闰年再计算天数
						} else{
						alert("请输入正确日期");
						}
					}
					if(+oMonth.value==2){
						if (+oYear.value%4==0&&+oYear.value%100!=0||+oYear.value%400==0) {
							if(+oDay.value<=29&&+oDay.value>=1){
							daysOne1();//计算闰年天数
							}else{
							alert("请输入正确日期");
							}
						} else{
							if (+oDay.value<=28&&+oDay.value>=1){
							daysOne2();//计算非闰年天数
							} else{
							alert("请输入正确日期");
							}
						}
					}	
				} else{
					alert("请输入正确月份");
				}
		} else{
			alert("请输入正确年份");
		}
	}	
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值