根据岁数算生肖

作者:norion时间:2016年11月28日评论次数:0 条

年末将至过段时间是就要肥家的肥家,相亲的相亲…

老一辈人总是喜欢用说生肖的方式告诉你几岁,问你生肖什么的,有没有那种苦恼,你要掰着手指算,然后好吧还算的不对,今天用js来实现一下根据岁数算生肖。

大家都知道生肖有12个,那么好,我们可以这样定义:

    var a = ["鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"];

知道这个之后,我们要知道当前这一年是属什么生肖的,比如今年2016年就属猴,那么倒数过去,2008年就是属鼠的,中间的差值就是8,而每格12年生肖就轮回一遍,我们可以这样定义:

    var b = ((new Date()).getFullYear() - 2008)%12;

那比如说属兔的在2016年是是30岁(虚岁),那么按照12生肖的算法,我们可以得知2016属兔最小的是6岁(虚岁):

    var c = n%12 - 12;
    var d = c < 0 ? -c : c;

这里再减去12的目的是我们要用d这个值加上差值b,保证b+d永远都不会超过11(数组的下标是0开始算),也永远不会是负数。

“嘿!这边这个童鞋,我不想看这些诶”

好吧,直接贴代码吧:

    function f(n){
        let a = ["鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"],
            b = ( (new Date()).getFullYear() - 2008 )%12,
            c = n%12 - 12,
            d = c < 0 ? -c : c;
        return a[ (b+d+1)%12 ]
    }

    //当前是2016年
    f(30) //兔
    f(1) //猴
    f(8) //牛

这里,如果你把

     (new Date()).getFullYear()

换成一个变量的话,你就可以知道,在xx年,xx岁是属什么的,当然,这个都是按照虚岁算的,什么实岁,我滚粗。。。

上一篇: js实现概率公式C(n, m)

下一篇:给你的express项目部署https

相关文章

评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注