PHP switch语句-计算生肖年

cigdeys3  于 2023-06-04  发布在  PHP
关注(0)|答案(2)|浏览(148)

嗨,我试图计算出哪一年有哪一个十二生肖通过使用余值,但我不明白的方程。在该等式中:($year - 4)% 12,为什么要减去4,然后再除以12得到余数,才能计算出生肖年呢?我明白,如果你做(1996 - 4)% 12 = 166.0,所以余数是0,所以这是一个'老鼠'年。但是这个方程是从哪里来的,它的意义是什么?

$year = 1996;
        switch (($year - 4) % 12) 
        {
            case  0: $zodiac = 'Rat';       break;
            case  1: $zodiac = 'Ox';        break;
            case  2: $zodiac = 'Tiger';     break;
            case  3: $zodiac = 'Rabbit';    break;
            case  4: $zodiac = 'Dragon';    break;
            case  5: $zodiac = 'Snake';     break;
            case  6: $zodiac = 'Horse';     break;
            case  7: $zodiac = 'Goat';      break;
            case  8: $zodiac = 'Monkey';    break;
            case  9: $zodiac = 'Rooster';   break;
            case 10: $zodiac = 'Dog';       break;
            case 11: $zodiac = 'Pig';       break;
        }
        echo "{$year} is the year of the {$zodiac}.<br />";
5vf7fwbs

5vf7fwbs1#

这个周期从几千年前开始计算,所以它只是发现转换到/从共同时代的方式。但别担心,没有跳跃或例外,所以等式总是有效的。有关更多详细信息,请参阅:https://en.wikipedia.org/wiki/Sexagenary_cycle
12年周期和60年周期都是很久以前为了方便统计年份而采用的。

rt4zxlrg

rt4zxlrg2#

如果其他人来这里寻找如何做到这一点,而不是为什么这样做:

$zodiacs = ['Monkey', 'Rooster', 'Dog', 'Pig', 'Rat', 'Ox', 'Tiger', 'Rabbit', 'Dragon', 'Snake', 'Horse', 'Goat'];
$zodiac = $zodiacs[$year % 12];

相关问题