1 概述
给出年月日,计算该日是该年的第几天
2 解法
//C程序设计第五版(谭浩强)
//章节:第七章 用函数实现模块化程序设计
//练习7.18 给出年月日,计算该日是该年的第几天。
#include <stdio.h>
int main()
{
int when(int year, int month, int day);
int year,month,day;
printf("请依次输入年月日:");
scanf("%d%d%d", &year, &month, &day);
printf("该日是%d年的第%d天!", year, when(year, month, day));
return 0;
}
int when(int year, int month, int day)
{
int when_day;
when_day = (month-1)*30 + day - 2; // 这是非闰年,且每个月只计算了30天;
if((year%4==0 && year%100!=0) || year%400==0){// 首先应该判断这一年是不是闰年吧!
printf("%d年是闰年,所以二月有29天!\n",year);
if(month>2){
when_day += 1;
}
}
if(month<=7){
when_day += month/2;
}
else{
when_day += month/2+1;
}
return when_day;
}