首页  >  文章  >  web前端  >  JavaScript趣题:这是哪个世纪?

JavaScript趣题:这是哪个世纪?

黄舟
黄舟原创
2017-02-04 15:15:461393浏览

输入一些用数字表示的年份,返回它们所属的是哪一个世纪。

例如2016年,毫无疑问,这是第21世纪,我们记作21st。

这些年份都是4位的数字字符串,所以无需你对它做校验。

下面,是一些例子:

Input: 1999 Output: 20th  
Input: 2011 Output: 21st  
Input: 2154 Output: 22nd  
Input: 2259 Output: 23rd  
Input: 1124 Output: 12th  
Input: 2000 Output: 20th

首先,咋们观察一下,怎么把年份转化为世纪?


略作思索,便可以想到,先把年份除以100,再向上取整,就可以得到所属的世纪。

但是,还有一个问题,世纪后面的那个“st”,“nd”,“rd”,“th”该怎么弄呢?

咋们拿只笔,拿张白纸,统计一下,便可以发现规律:

20世纪及以前,比如说:tenth,eleventh,twelfth......twentieth都是加th。

20世纪以后,凡是被10整除得1的世纪,比如twentyfirst,thirtyfirst,fortyfirst......都是加st,凡是被10整除得2的世纪,则是加nd,凡是被10整除得3的世纪,加rd。

而20世纪以后的其他世纪,都是加th。

于是,我们把这统计的逻辑写成代码:

function whatCentury(year){  
    var century = Math.ceil(year / 100);  
    if(century <= 20){  
        century += "th";  
    }  
    else{  
        if(century % 10 == 1){  
            century += "st";  
        }  
        else if(century % 10 == 2){  
            century += "nd";  
        }  
        else if(century % 10 == 3){  
            century += "rd";  
        }  
        else{  
            century += "th";  
        }  
    }  
    return century;  
}

以上就是 JavaScript趣题:这是哪个世纪?的内容,更多相关内容请关注PHP中文网(www.php.cn)!


声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn