判斷某一年天數的問題
—以前寫關於年數天數的演算法都是用各種if語句判來判去的,沒有想過簡化一下,昨天看了打魚還是晒網的的演算法,發現了一段簡練清晰的程式碼(一下是c語言程式碼,不過思想是普遍適用的)
int days(struct date day) {
//這裡首先定義一個關於閏年和非閏年每一個月天數的二維陣列
const int month_days[2][13] = {{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, //非閏年每一個月的天數
{0, 31 , 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}}; //閏年每一個月的天數
int i, lp=0;
if(day.year%4 == 0 && day.year %100!=0 || day.year%400 == 0) lp=1; //lp用來判斷是否閏年
...
}