Problem Link:http://139.129.36.234/problem.php?cid=1015&pid=0
问题 A: 第几天
时间限制: 1 Sec 内存限制: 128 MB提交: 40 解决: 19
[ 提交][ 状态][ 讨论版]
题目描述
给定一个日期, 输出这个日期是该年的第几天。
输入
数据格式为 YYYY/MM/DD组成, 具体参见输入示例。另外,所有输入数据是合法的。
输出
对于每组输入数据,输出一行,表示该日期是该年的第几天。
样例输入
1985/01/20
2006/03/12
样例输出
20
71
AC code:
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<map>
#include<math.h>
#include<string.h>
#include<queue>
#include<vector>
#include<set>
#define LL long long
#define exp 1e-9
#define MAXN 1000010
using namespace std;
int mon[2][13]={0,31,28,31,30,31,30,31,31,30,31,30,31,
0,31,29,31,30,31,30,31,31,30,31,30,31};
int isleap(int y)
{
return ((y%4==0&&y%100!=0)||y%400==0);
}
int day(int y,int m,int d)
{
int i,id,sum;
id=isleap(y);
sum=0;
for(i=1;i<m;i++)
{
sum+=mon[id][i];
}
sum+=d;
return sum;
}
int main( )
{
// freopen("D:\\in.txt","r",stdin);
int y,m,d;
while(scanf("%d/%d/%d",&y,&m,&d)!=EOF)
{
printf("%d\n",day(y,m,d));
}
return 0;
}