题目描述
日期计算
输入表示年月日的三个数字,计算是该年的第几天
代码
#include<stdio.h>
int GetYearDay(int year, int month, int day);
int IsLeap(int year);
int main(void){
int day, month, year;
printf("输入表示年月日的三个数字:\n");
scanf("%d%d%d", &year, &month, &day);
printf("是%d该年的第%d天\n", year, GetYearDay(year, month, day));
return 0;
}
//计算天数
int GetYearDay(int year, int month, int day){
int k,leap;
int tab[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}
} ;
leap=IsLeap(year);
for(k=0;k<month;k++){
day=day+tab[leap][k];//按第leap行计算
}
return day;
}
//判断闰年
int IsLeap(int year){
return ((year%4==0 && year%100!=0) || (year%400==0));
}