1129: 第几天
题目描述
你知道,2012-1-1是该年的第1天,而9999-9-9呢?给你一个具体的日期,计算该日期是该年的第几天。
输入
输入一个日期,格式为:Year-month-day。year是小于9999的正整数。
输出
一个整数,表示该日期是该年的第几天。
样例输入 Copy
2012-3-1
样例输出 Copy
61
来源/分类
#include<stdio.h>
#include<math.h>
/*
计算某一年的第几天
1,3,5,7,8,10,11
4,6,9,12
2
闰年,被4整除,且不能被100整除
被400整除
*/
int main(){
int year,month,day;
int a[13]={0};
//从下标为1开始记录,a[0]=0;
a[1]=a[3]=a[5]=a[7]=a[8]=a[10]=a[12]=31;
a[4]=a[6]=a[9]=a[11]=30;
scanf("%d-%d-%d",&year,&month,&day);
if((year%400==0)||(year%4==0&&year%100!=0)) a[2]=29;
else a[2]=28;
for(int i=0;i<month;i++){
day+=a[i];
}
printf("%d\n",day);
return 0;
}