2016-11-21 56 views
-5

我發現這個片段計算中國十二生肖基於年份。開關語句在php

<?php 
$year = 2016; 
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}."; 
?> 

我想知道爲什麼他們先在其餘做開關之前扣除4

+0

它取決於你什麼邏輯你想通過它。正是你想要做的? –

+0

目前還不清楚你想要什麼,你的問題是什麼? –

回答

1

原因是因爲Chinese Zodiac的12年週期與Gregorian Calender(我們使用的週期不同步)。

中國十二生肖的12年週期通常以「大鼠」開始(如您的代碼所示)。然而,公曆年「公元0年」不是「老鼠」。大鼠到時代最近的一年實際上是在公元4年。因此,要使日曆與生肖正確對齊,並使其更容易閱讀,程序員決定簡單地從年份中減去4,而不是改變所有數字(使兔子= 0,龍= 1,等等)