题解 | #计算日期到天数转换#

计算日期到天数转换

https://www.nowcoder.com/practice/769d45d455fe40b385ba32f97e7bcded

照例先分享不用动脑筋的简单算法,再附上比较巧妙的算法:
//算法1: 二狗算法(太简单了,就不解析了,解析一下第二种算法)
while (line = readline()) {
    let arr = line.split(' ');
    let n = parseInt(arr[0]);
    let m = parseInt(arr[1]);
    let d = parseInt(arr[2]);
    let base = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
    let output = 0;
    if (m == 1) {
        output = d;
        //console.log("A");
    }
    else if (m == 2) {
        output = 31 + d;
        //console.log("B");
    }
    else {
        if (n % 4 == 0 && n % 100 != 0) {
            output = base.slice(0, m - 1).reduce((a, b) => a+b) + d + 1;
            //console.log("C");
        }
        else {
            output = base.slice(0, m - 1).reduce((a, b) => a+b) + d;
            //console.log("D");
        }
    }
    console.log(output);
}
//算法2:巧妙算法
/*
var arr = readline().split(' ')
var year = arr[0]
var month = arr[1]
var day = arr[2]
var sum = 0
for(var i = month-1; i > 0; i--) {
    //这里的for循环是关键,new Date(year, i, 0)可以定位到year年i+1月最后一天,
    //再通过getDate()方法即可获取当月天数,再通过+=方法,得出sum,再加上day输出即可。
    sum += new Date(year, i, 0).getDate()
    //console.log(sum);
}
console.log(sum+Number(day));
*/



全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务