做个查询系统,其中有个地方要取指定年月的这个月的总天数,比如2006年8月,那就是31天
为此我做了一个简单的函数,思路是:
1)先检查月是否在合法范围内(年未检查);
2)检查是否2月,是2月则检查是否闰年;
3)不是2月则检查是否大月,检查方法是月份对2取余再加上30,小于等于零7的不作修正,大于等于8的给月份加上1再取余;
int getmonthday(int year, int month)
{
return (month > 12 || month <= 0) ? 0 : (month == 2 ? ((year % 4 == 0 && (year % 100 == 0 ? year % 400 == 0 : true)) ? 29 : 28) : (30 + (month <= 7 ? month : month + 1) % 2));
}