利用JavaScript 使用函数完成给定日期(例如:2024 04 20) 这一天是本年中的第几天

1:完成的效果为:

  要实现弹框中的提示和数值的填写,经过填写三次,系统利用填写的数值(输入年份、月份、天数)得出本年中的第几天。

2:第一步:

  弹框以及弹框中提示的实现

第二步:

  判断所输入的年份是否为闰年

第三步:

  计算所输入内容的天数

3:第一步内容如图:

var year = prompt("请输入年份:")
year=parseInt(year)
var month = prompt("请输入月份:")
month=parseInt(month)
var day = prompt("请输入第几天:")
day=parseInt(day)

第二步内容如图:

function isLeapYear(year) {
	if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
		return true
	} else {
		return false
	}
}
if (isLeapYear(year)) {

}else{

}

第三步内容如图:

function isMonthDay(i) {

	if (i == 2) {
		return 29
	}
	if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) {
		return 31
	}
	if (i == 4 || i == 6 || i == 9 || i == 11) {
		return  30
	}
	if(i==0){
		return 0
	}

}

var m1 = 0

for (var i = 0; i < month; i++) {
	m1 = isMonthDay(i) + m1
	}
	sum=m1+day
	document.write(year+"年"+month+"月"+day+"天"+"是本年的第"+sum+"天")

4:在完成代码中出现闰年判断后没有思路,怎样利用函数来实现把月份转为天数,同时也要考虑在转换的过程中要注意当天月份的不转换。利用函数把闰年判断后,再使用循环来实现每个月之间的相加,要注意当天月份不能相加,利用有参数有返回值的函数来实现每个月天数的实现。平年则在循环中加上一段代码实现二月份为28天的情况。

5:完整源码如图:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>使用函数完成给定日期2024 04 20 这一天是本年中的第几天</title>
		<script>
			function isLeapYear(year) {
				if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
					return true
				} else {
					return false
				}
			}

			function isMonthDay(i) {

				if (i == 2) {
					return 29
				}
				if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) {
					return 31
				}
				if (i == 4 || i == 6 || i == 9 || i == 11) {
					return  30
				}
				if(i==0){
					return 0
				}

			}

			var m1 = 0
			// 数据接收问题
			var year = prompt("请输入年份:")
			year=parseInt(year)
			var month = prompt("请输入月份:")
			month=parseInt(month)
			var day = prompt("请输入第几天:")
			day=parseInt(day)
			// 判断是否为闰年
			if (isLeapYear(year)) {
				// 计算输入数值的天数
				for (var i = 0; i < month; i++) {
					m1 = isMonthDay(i) + m1
				
				}
				sum=m1+day
				document.write(year+"年"+month+"月"+day+"天"+"是本年的第"+sum+"天")

			} else {
				for (var i = 0; i < month; i++) {
					if (i==2){
						m1-=1
					}
					m1 = isMonthDay(i) + m1
				}
				sum=m1+day
				document.write(year+"年"+month+"月"+day+"天"+"是本年的第"+sum+"天")
			}

		</script>
	</head>
	<body>
	</body>
</html>

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值