js初学者 if else if 头发都挠秃了

js 根据三个已知定量求是今年的第几天 不使用for循环 switch
var year = 2021
var month = 3
var date = 1
code run here
结果:今年的第60天
中间代码不能能动
结果根据变量变化

用if判断是闰年还是非闰年的情况。

var year = 2021
var month = 3
var date = 1
if(year%4==0&&year%100!=0||year%400==0){
  date=date+1;  
}
if(month>1){
    date+=31;
}
if(month>2){
    date+=28;
}
if(month>3){
    date+=31;
}
if(month>4){
    date+=30;
}
if(month>5){
    date+=31;
}
if(month>6){
    date+=30;
}
if(month>7){
    date+=31;
}if(month>8){
    date+=31;
}
if(month>9){
    date+=30;
}
if(month>10){
    date+=31;
}
if(month>11){
    date+=30;
}
console.log("今年的第"+date+"天")

img


 var year = 2021;
      var month = 3;
      var date = 1;
      let new_time = new Date(`${year}-${month}-${date}`) ;
      let old_time = new Date(`${year}-1-1`)
      console.log(parseInt((new_time-old_time)/1000/60/60/24)+1);
var days = 0;
switch(month){
    case 1:
        days = date;
        break;
    case 2:
        days = 31 + date;
        break;
    case 3:
        days = 31 + 28+ date;
        break;
    case 4:
        days = 31 + 28+ +31 + date;
        break;
    case 5:
        days = 31 + 28+ +31 +30+ date;
        break;
    case 6:
        days = 31 + 28+ +31 +30+31+ date;
        break;
    ....
}

function getDaysInYear(y, m, d) {
  return (new Date(y, m - 1, d) - new Date(y, 0, 0)) / 86400000;
}
var year = 2021;
var month = 3;
var date = 1;
var day = getDaysInYear(year,month,date);
 console.log(day);

输出60