首页 > 代码库 > 02-输出某年某月某日的天数

02-输出某年某月某日的天数

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<script>

    //需求:输入某年某月某日,判断这一天是这一年的第几天?(闰年)
        //(四年一闰,百年不闰,四百年在闰)
    //步骤:
    //1.判断是否是闰年。
    //2.求天数。(年判断是否是闰年,月是否超过2月,天最好做)
        //1.把每月的天数组成一个数组,不包含闰年。
        //2.如果是闰年,而且超过了二月,直接在天数上+1;


    //2.求天数。(年判断是否是闰年,月是否超过2月,天最好做)
        //1.把每月的天数组成一个数组,不包含闰年。
        //2.如果是闰年,而且超过了二月,直接在天数上+1;

    console.log(getDays(2015,3,1));
//    console.log(getDays(2015,5,67));

    //参数问题:年月日是变化的。处理方法有两种,第一种就是变成成员变量,不方便。
      //第二种是把年月日变成参数。
    function getDays(year,month,day){
        //1.把每月的天数组成一个数组,不包含闰年。
        var arr = [31,28,31,30,31,30,31,31,30,31,30,31];
        //2.如果是闰年,而且超过了二月,直接在天数上+1;
        //把输入的月份之前的天数放入到day中。(不包含本月)
        //输入的月份我们把他当做索引值用。(所以我们要把月份-1,而且不能相等)
        for(var i=0;i<month-1;i++){
            //把月份之前的所有天数放入到day中
//            day = day + arr[i];
            day += arr[i];
        }
        //判断是否是闰年且月份是否超过2月。不能等于二月。如果超过day+1;
        if(month>2 && isRN(year)){
           //day++;
            day+=1;
        }
        //算好的天数,返回,外部使用
        return day;
    }


    //1.判断是否是闰年。
    function isRN(year){
        //要有返回值,将来判断是否是闰年,是否超过2月,如果是添加1天。
        //(四年一闰,百年不闰,四百年在闰) 4  8 64  24  36行  100/200/300不行    400、800、1200行
//        if(year%4===0 && year%100!==0 || year%400===0){
//            return true;
//        }else{
//            return false;
//        }
        if(year%4===0 && year%100!==0 || year%400===0){
            return true;
        }
        return false;
    }



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

  

02-输出某年某月某日的天数