题目连接
http://acm.hdu.edu.cn/showproblem.php?pid=2005
Description
给定一个日期,输出这个日期是该年的第几天。
Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。
Sample Input
1985/1/20
2006/3/12
Sample Output
20
71
题意
就是给定一个日期算天数,主要区别闰年和平年(这个还真难区别QAQ)。
代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<string>
#include<cctype>
#include<algorithm>
#include<vector>
int main(int argc, char const *argv[])
{
int a,b,c;
int num;
while(scanf("%d/%d/%d",&a,&b,&c)!=EOF){
num=0;
switch(b){
case 12:num+=30;
case 11:num+=31;
case 10:num+=30;
case 9:num+=31;
case 8:num+=31;
case 7:num+=30;
case 6:num+=31;
case 5:num+=30;
case 4:num+=31;
case 3:if (a%4==0&&a%100!=0||a%400==0)
{
num+=29;
}
else{
num+=28;
};
case 2:num+=31;
case 1:num+=c;
}
printf("%d\n",num );
}
return 0;
}
一些注意
- (a%4==0&&a%100!=0||a%400==0)闰年的判断
- 多用scanf,printf输入输出,避免用cin,cout
- switch case的用法