这个函数输入某年的某月某日,就知道是该年的第几天
问题相关代码
static char daytab[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 day_of_year(int year, int month, int day)
{
int leap;
leap = year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
for (int i = 1; i < month; i++)
day += daytab[leap][i];
return day;
}
这里之所以将daytab的元素声明为char类型,是为了说明在char类型的变量中存放较小的非字符整数也是合法的。我对这句话理解得不是很清楚。int数据类型的范围不是远大于char吗?将该数组的元素设置成int也没问题吧?