—以前写关于年数天数的算法都是用各种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用来判断是否闰年
...
}