【问题标题】:Year Converter Function年换算功能
【发布时间】:2017-08-11 01:58:39
【问题描述】:

我正在尝试创建一个函数,您可以在其中输入年份,然后输出返回该年份所在的世纪。我大部分时间都下来了,但是在逻辑的某个地方我遗漏了一些东西,我没有得到正确的年份,即 2000 年(20 世纪,我得到 21 世纪)

我的 JS:

function centuryFromYear(year) {

    if (year <= 100) {
        console.log("um")
        return year * 0 + 1
    } else if (year > 100 && year <= 1000) {
        console.log("dois")
        var kek = year / 100
        var lul = Math.floor(kek)

    } else if (year > 1001) {
        console.log("tres")
        var kek = year / 100
        var lul = Math.floor(kek)
        return (lul + 1)
    }

}

【问题讨论】:

  • year * 0 + 1 永远是1。您今年没有案例1001。那些if 声明根本没有理由。 1011000 的这些年来你没有返回任何东西。这是一个相当琐碎的问题,有很多关于如何做到这一点的资源。 Rubber Duck Debug你的代码。
  • 您好,2000 年实际上是 21 世纪,您得到的答案是正确的。 en.wikipedia.org/wiki/21st_century。很傻,对吧?
  • @AbhilashSingh 不,这是错误的。再次阅读您的链接:“它始于 2001 年 1 月 1 日,并将于 2100 年 12 月 31 日结束。”
  • @xufox 傻,我!尴尬。
  • @Xufox——告诉所有在 1999 年 12 月 31 日庆祝千禧年结束的人。;-)

标签: javascript string function integer converter


【解决方案1】:

可能是这样的:

function centuryFromYear(year) {
  return Math.floor((year - 1) / 100) + 1;
}


//* tests
[100,101,250, 1000, 1001, 1999, 2000, 2001].forEach(function(y) {
  console.log(y + ' year is in ' + centuryFromYear(y) + ' century');
});

【讨论】:

    【解决方案2】:

    抱歉,有点混乱的方法,我相信可能有更优雅的方法可用:
    注意:格鲁吉亚日历上不存在负世纪和公元 0 年

    function myFunction() {
        year = 2000;
        b = year;
        if (b % 100 > 0){
          b = Math.floor((year)/100);
          b = b +1 ;
        }
        else if (b % 100 == 0){
          b = Math.floor((year)/100);
        }
        else if (b < 100 && b > 0){
          b = (Math.floor((year)/100)+1);
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-03
      • 1970-01-01
      • 1970-01-01
      • 2018-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多