描述
输入年、月、日,计算该天是本年的第几天。
输入描述:
包括三个整数年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31)。
输出描述:
输入可能有多组测试数据,对于每一组测试数据, 输出一个整数,代表Input中的年、月、日对应本年的第几天。
示例1
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main() {
int year,mon,day;
int monday[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};//第mon月的天数
int totalday[13] = {0}; //到mon月1日的总天数
for(int mon = 2;mon <= 12;mon++){
//到mon月1日的总天数 = 到 mon - 1月的总天数 + 第mon - 1月的天数
totalday[mon] = totalday[mon - 1] + monday[mon - 1];
}
while(~scanf("%d %d %d",&year,&mon,&day)){
//若为闰年
bool isLeap = year % 400 == 0 || year % 100 != 0 && year % 4 == 0;
if(isLeap == true && mon >= 3){
printf("%d\n",totalday[mon] + day +1);
}
else{
printf("%d\n",totalday[mon] + day);
}
}
return 0;
}