daysSinceNewYear(){constMONTH_DAYS=[31,28,31,30,31,30,31,31,30,31,30,31];const now =newDate();const year = now.getFullYear();let days =0;// 对于平年,我们可以直接将年份减去1970年(UNIX纪元开始的年份)for(let i = year; i < year; i++){
days +=(i %4===0&& i %100!==0)|| i %400===0?366:365;}// 加上当前年份的天数const currentYearDays = now.getDate();// 获取当前月份的天数const currentMonth = now.getMonth();// 获取当前月份(0-11)
days += currentYearDays;// 加上当前月份之前所有月份的天数for(let i =0; i < currentMonth; i++){
days +=MONTH_DAYS[i];}// 如果是闰年且已经过了2月29日,则需要加一天if((year %4===0&& year %100!==0)|| year %400===0){if(currentMonth >=1) days++;// 2月已经过去}return days;}
console.log(daysSinceNewYear())