欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

JavaScript趣题:这是哪个世纪?

程序员文章站 2022-03-31 12:01:08
...
输入一些用数字表示的年份,返回它们所属的是哪一个世纪。

例如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)!

相关标签: JavaScript趣题