老师帮我看下,实现不了

老师帮我看下,实现不了

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>js函数小结</title>

</head>

<body>

<script>

var year=parseInt(prompt("请属入您的出生年份"));

var month=parseInt(prompt("请属入您的出生月份"));

var day=parseInt(prompt("请属入您的出生日期"));

function funName(){

var i;

if(isNaN(year)){

return "输入内容必须是数字";

}else if(year.length!=4){

return "请输入四位数字数字";

}else{


var m1=31,m3=31,m4=30,m5=31,m6=30,m7=31,m8=31,m9=30,m10=31,m11=30,m12=31;

if(year%4==0 && year%100!=10 || year/400==0){

var m2=29;

}else{

var m2=28;

}


for(var i=0;i<month;i++){

var sum=0;

sum+=arguments[i];

document.write("您的生日在"+year+"年是第"+sum+"天");

}


}

}



</script>

</body>

</html>

谢谢

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
Miracle_H 2019-02-01 01:46:40
<!DOCTYPE html>
<!DOCTYPE html>
<html>
<head>
	<title>function homework</title>
	<meta charset="utf-8">
</head>
<body>
	<script type="text/javascript">

		function getYear() {
			var year = prompt("请输入你的出生年份");
			return year;
		}
		function getMonth(){
			var month = prompt("请输入你的出生月份");
			return month;
		}
		function getDay(){
			var day = prompt("请输入你的出生日期");
			return day;
		}
		var year = getYear();
		var month = getMonth();
		var day = getDay();
		function sumDay(){
			var sum = 0;

			switch(Number(month)){
				case 12:sum += 30;
	            case 11:sum += 31;
	            case 10:sum += 30;
	            case 9 :sum += 31;
	            case 8 :sum += 31;
	            case 7 :sum += 30;
	            case 6 :sum += 31;
	            case 5 :sum += 30;
	            case 4 :sum += 31;
	            case 3 :
	                if((Number(year) % 4 == 0 && Number(year) % 100 != 0) || (Number(year) % 100 == 0 && Number(year) % 400 == 0)){
	                    sum += 29;
	                }
	                else{
	                    sum += 28;
	                }
	            case 2 :sum += 31;
	            case 1 :sum += Number(day);
	        }
	        return sum;
		}
		
		document.write("您的生日在"+year+"的第"+ sumDay()+"天");	
	</script>
</body>
</html>


Miss路 2019-01-23 10:46:07

同学,你好。var arr=[31,,31,30,31,30,31,31,30,31,30,31]; 是数组的定义方式。在这里你应该还没有学到数组的定义方式,但是在你的代码中是用的数组实现的思想,老师还以为你想用数组实现,看来你还是比较有想法的同学,很棒。不过没关系,上一条回复中数组实现方式是一种实现实现方法,等后面你学了数组就能看懂了,下面我再给你另外一种实现方式,可以用switch语句会比较直观,好理解:

<script type="text/javascript">
    function testCalcDate() {
        var year = prompt('请输入您的出生年份');
        year = parseInt(year);
        var month = prompt('请输入您的出生月份');
        month = parseInt(month);
        var day = prompt('请输入您的出生日期');
        day = parseInt(day);
        //输入年月日后,调用计算的函数
        var result = calcDate(year, month, day);
        document.write('您的生日在' + year + '年是第' + result + '天');
    }

    function calcDate(year, month, day) {
        var counter = 0;
        //判定当年是否为闰年
        var isLeapYear = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
        if (month == 1) { //如果月份是1,那么他出生的天数就是该年的第几天,后面的月份以此类推
            counter = day;
        } else if (month == 2) {
            counter = 31 + day;
        } else if (month == 3) {
            counter = 31 + (isLeapYear ? 29 : 28) + day;
        } else if (month == 4) {
            counter = 31 + (isLeapYear ? 29 : 28) + 31 + day;
        } else if (month == 5) {
            counter = 31 + (isLeapYear ? 29 : 28) + 31 + 30 + day;
        } else if (month == 6) {
            counter = 31 + (isLeapYear ? 29 : 28) + 31 + 30 + 31 + day;
        } else if (month == 7) {
            counter = 31 + (isLeapYear ? 29 : 28) + 31 + 30 + 31 + 30 + day;
        } else if (month == 8) {
            counter = 31 + (isLeapYear ? 29 : 28) + 31 + 30 + 31 + 30 + 31 + day;
        } else if (month == 9) {
            counter = 31 + (isLeapYear ? 29 : 28) + 31 + 30 + 31 + 30 + 31 + 31 + day;
        } else if (month == 10) {
            counter = 31 + (isLeapYear ? 29 : 28) + 31 + 30 + 31 + 30 + 31 + 31 + 30 + day;
        } else if (month == 11) {
            counter = 31 + (isLeapYear ? 29 : 28) + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + day;
        } else if (month == 12) {
            counter = 31 + (isLeapYear ? 29 : 28) + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + day;
        }
        return counter;
    }
    testCalcDate();
    </script>

如果帮助到了你,欢迎采纳!

祝学习愉快!

Miss路 2019-01-21 11:21:32

同学,你好。暂时先不用对输入的值做判断,先把输入正确的值逻辑打通之后,再拓展功能。

从你的代码中可以看出来,你想使用数组来实现,需要在外面定义数组。注意输出时要在循环外输出,最后要调用方法。

整体可以参考下面的代码:

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>js函数小结</title>
</head>
<body>
    <script>
    var year = parseInt(prompt("请属入您的出生年份"));
    var month = parseInt(prompt("请属入您的出生月份"));
    var day = parseInt(prompt("请属入您的出生日期"));
    var arr=[31,,31,30,31,30,31,31,30,31,30,31];
    var sum = 0;
	funName(arr);
    function funName(arr) {
       
        if (year % 4 == 0 && year % 100 != 0 || year%400 == 0) {
            arr[1]=29;
        } else {
            arr[1]=28;
        }
        for (var i = 0; i < month-1; i++) {
            sum += arr[i];
        }
        document.write("您的生日在" + year + "年是第" + (sum+day) + "天");
    }
    </script>
</body>
</html>

如果帮助到了你,欢迎采纳!

祝学习愉快!

  • 提问者 慕九州8424370 #1
    var arr=[31,,31,30,31,30,31,31,30,31,30,31]; 老师,这是个什么定义方法!
    2019-01-22 22:56:17
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师