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

计算日期到天数转换

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));
*/



全部评论

相关推荐

uu们,拒offer时hr很生气怎么办我哭死
爱睡觉的冰箱哥:人家回收你的offer,或者oc后没给你发offer的时候可不会愧疚你,所以你拒了也没必要愧疚他。
点赞 评论 收藏
分享
05-12 11:09
已编辑
门头沟学院 后端
已注销:没必要放这么多专业技能的描述。这些应该是默认已会的,写这么多行感觉在凑内容。项目这块感觉再包装包装吧,换个名字,虽然大家的项目基本都是网上套壳的,但是你这也太明显了。放一个业务项目,再放一个技术项目。技术项目,例如中间件的一些扩展和尝试。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务