使用函数完成给定日期2024 0420这一天是本年中的第几天

1:问题描述

        通过输入年、月、日,使用函数完成给定日期这一天是本年中的第几天

2:解题思路

        <1>年、月、日的获取问题

        <2>用函数表示出年、月、日:

                        1:判断该年是否是闰年

                        2:用Switch...case...输入月份,可以计算出对应的天数,如果该年是闰年且月份大于二月,则天数多加一天

                        3:一月三月五月七月八月十月十二月都是31天,四月六月九月十一月都是30天,闰年二月29天,平年二月28天

        <3>输出该年该月该日是本年的第几天

3:每步骤对应的代码

        <1>年、月、日的获取问题

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

​

       <2>用函数表示出年、月、日:

                        1:判断该年是否是闰年

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

                2:用Switch...case...输入月份,可以计算出对应的天数,如果该年是闰年且月份大于二月,则天数多加一天

function getDayByDate(year, month, day) {
				var days = 0;
				switch (month) {
					case 12:
						// 11月的天数
						days += 30
					case 11:
						// 10月的天数
						days += 31
					case 10:
						// 9月的天数
						days += 30
					case 9:
						// 8月的天数
						days += 31
					case 8:
						// 7月的天数
						days += 31
					case 7:
						// 6月的天数
						days += 30
					case 6:
						// 5月的天数
						days += 31
					case 5:
						// 4月的天数
						days += 30
					case 4:
						// 3月的天数
						days += 31
					case 3:
						// 2月的天数
						days += 28
					case 2:
						// 1月的天数
						days += 31
					case 1:
						days += day
						break;
					default:
						break;
				}
				if (isLeapYear(year) && month > 2) {
					days += 1
				}
				return days
			}

        <3>输出该年该月该日是本年的第几天

document.write(getDayByDate(year, month, day))

4:重难点总结

        先利用函数分析该年是否是闰年,注意:闰年二月比平年二月多一天,把月份转换为天数,用Switch...case...来表示天数,删除break可以往下继续运行循环代码,合理利用有参数有返回值的函数来实现每个月天数的实现

5:完整代码

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

			function getDayByDate(year, month, day) {
				var days = 0;
				switch (month) {
					case 12:
						// 11月的天数
						days += 30
					case 11:
						// 10月的天数
						days += 31
					case 10:
						// 9月的天数
						days += 30
					case 9:
						// 8月的天数
						days += 31
					case 8:
						// 7月的天数
						days += 31
					case 7:
						// 6月的天数
						days += 30
					case 6:
						// 5月的天数
						days += 31
					case 5:
						// 4月的天数
						days += 30
					case 4:
						// 3月的天数
						days += 31
					case 3:
						// 2月的天数
						days += 28
					case 2:
						// 1月的天数
						days += 31
					case 1:
						days += day
						break;
					default:
						break;
				}
				if (isLeapYear(year) && month > 2) {
					days += 1
				}
				return days
			}

			var year = parseInt(prompt("请输入年份"));
			var month = parseInt(prompt("请输入月份"));
			var day = parseInt(prompt("请输入第几天"));
			document.write(getDayByDate(year, month, day))
		</script>
	</head>
	<body>
	</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值