一、知识点
这里所有涉及到的都是公历(阳历)
1、闰年的判断
能被100整除的年份,能被400整除时,闰
不能被100整除的年份,能被4整除时,闰
2、一年有多少天
一年有12个月,这12个月分3类
第一类:大月,每月31天,共7个;分别是1月,3月,5月,7月,8月,10月,12月
第二类:小月,每月30天,共4个;分别是4月,6月,9月,11月
第三类:2月,平年2月是28天,闰年2月是29天
所以,平年全年是365天,闰年全年是366天
二、题目
1、描述
根据输入的日期,计算是这一年的第几天。
保证年份为4位数且日期合法。
2、输入
输入一行,每行空格分割,分别是年,月,日
3、输出
输出是这一年的第几天
三、自己写的代码
#include<stdio.h>
int main() {
int year, month, day, sum = 0;
char IsLeapYear = 0;
scanf("%d %d %d", &year, &month, &day);
if (year % 100 == 0) {
if (year % 400 == 0) {
IsLeapYear = 1;
}
} else {
if (year % 4 == 0) {
IsLeapYear = 1;
}
}
if (month == 2) {
sum += 31;
} else if (month == 3) {
sum += 59;
} else if (month == 4) {
sum += 90;
} else if (month == 5) {
sum += 120;
} else if (month == 6) {
sum += 151;
} else if (month == 7) {
sum += 181;
} else if (month == 8) {
sum += 212;
} else if (month == 9) {
sum += 243;
} else if (month == 10) {
sum += 273;
} else if (month == 11) {
sum += 304;
} else if (month == 12) {
sum += 334;
}
if (IsLeapYear == 1 && month > 2) {
sum += 1;
}
sum += day;
printf("%d\n", sum);
return 0;
}