作业2:使用函数完成给定日期计算该日期是本年中的第几天

一、步骤

                1.输入日期

                2.判断是否是闰年

                3.判断月份

                4.将该月份之前的天数与输入的天数相加

                5.输出该日期在本年中的天数

二、思路

                闰年的2月有29天,平年的2月有28天。首先要判断输入的年份是闰年还是平年,其次判断输入的月份,将该月份前的几个月的天数相加,最后将该月份之前的天数与输入的天数相加。

三、对应代码

        1.输入日期

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

        2.定义一个判断是否是闰年的函数

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

        3.定义一个判断输入的月份的函数,并输出该月份之前的天数

        function Input(a,b){
				var c = leapYear(b)
				if(c){
					switch(a){
					case 1:  return 0;break;
					case 2:  return 31;break;
					case 3:  return 60;break;
					case 4:  return 91;break;
					case 5:  return 121;break;
					case 6:  return 152;break;
					case 7:  return 182;break;
					case 8:  return 213;break;
					case 9:  return 243;break;
					case 10: return 274;break;
					case 11: return 304;break;
					default: return 335;break;
					}
				}else{
					switch(a){
					case 1:  return 0;break;
					case 2:  return 31;break;
					case 3:  return 60-1;break;
					case 4:  return 91-1;break;
					case 5:  return 121-1;break;
					case 6:  return 152-1;break;
					case 7:  return 182-1;break;
					case 8:  return 213-1;break;
					case 9:  return 243-1;break;
					case 10: return 274-1;break;
					case 11: return 304-1;break;
					case 12: return 335-1;break;
					}
				}
				
			}

        4.将输出的天数与输入的天数相加

            //首先看是否是闰年,其次看是几月
			var afterMonthNumber = Input(month,year);
			//将之前月份的天数与输入的几号相加
			var sum = afterMonthNumber + day;

        5.输出该日期在本年中的天数

    		//输出天数
			document.write("这是本年的第"+sum+"天");

四、思路总结

                该问题最重要的是判断该年2月是28天还是29天,之后判断该月之前的及月是31天还是30天

五、全部代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>给定日期,判断天数</title>
	</head>
	<body>
		<script>
			//判断是否是闰年
			function leapYear(year){
				if(year%4==0 && year%10!=0 || year%400==0){
					return true;
				}else{
					return false;
				}
			}
			
			
			function Input(a,b){
				var c = leapYear(b)
				if(c){
					switch(a){
					case 1:  return 0;break;
					case 2:  return 31;break;
					case 3:  return 60;break;
					case 4:  return 91;break;
					case 5:  return 121;break;
					case 6:  return 152;break;
					case 7:  return 182;break;
					case 8:  return 213;break;
					case 9:  return 243;break;
					case 10: return 274;break;
					case 11: return 304;break;
					default: return 335;break;
					}
				}else{
					switch(a){
					case 1:  return 0;break;
					case 2:  return 31;break;
					case 3:  return 60-1;break;
					case 4:  return 91-1;break;
					case 5:  return 121-1;break;
					case 6:  return 152-1;break;
					case 7:  return 182-1;break;
					case 8:  return 213-1;break;
					case 9:  return 243-1;break;
					case 10: return 274-1;break;
					case 11: return 304-1;break;
					case 12: return 335-1;break;
					}
				}
				
			}
			
			
			//1.输入天数
			var year = parseInt(prompt("请输入年份:"));
			var month = parseInt(prompt("请输入月份:"));
			var day = parseInt(prompt("请输入天数:"));
			//2.判断第几天
			//首先看是否是闰年,其次看是几月
			var afterMonthNumber = Input(month,year);
			//将之前月份的天数与输入的几号相加
			var sum = afterMonthNumber + day;
			//输出天数
			document.write("这是本年的第"+sum+"天");
		</script>
	</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值