题目描述
输入年、月、日,计算该天是本年的第几天。
输入描述:
包括三个整数年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31)。
输出描述:
输入可能有多组测试数据,对于每一组测试数据, 输出一个整数,代表Input中的年、月、日对应本年的第几天。
代码
#include <stdio.h>
#include <stdbool.h>
int main() {
int mday[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
bool tag = 0;
int y, m, d;
scanf("%d%d%d", &y, &m,&d);
int result = 0;
for (int i = 0; i < m - 1; i ++) {
result += mday[i];
}
// 判断是否闰年
if (y % 4 == 0 && y % 100 != 0) {
tag = 1;
}
else {
if (y % 400 == 0) {
tag = 1;
}
}
if (tag && m > 2) {
result += 1;
}
printf("%d", result + d);
return 0;
}