第几天?
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 2634 Accepted Submission(s): 1026
Problem Description
给定一个日期,输出这个日期是该年的第几天。
Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。
Sample Input
1985/1/20 2006/3/12
Sample Output
20 71
Author
lcy
Source
C语言程序设计练习(一)
Recommend
JGShining
#include
<
iostream
>
using namespace std;
main()
... {
int y,m,d;
char c;
while(cin>>y>>c>>m>>c>>d)
...{
int sum=0;
switch(m)
...{
case 12:sum+=30;
case 11:sum+=31;
case 10: sum+=30;
case 9: sum+=31;
case 8: sum+=31;
case 7: sum+=30;
case 6: sum+=31;
case 5: sum+=30;
case 4: sum+=31;
case 3: if((y%4==0&&y%100!=0)||(y%400==0))
sum+=29;
else sum+=28;
case 2: sum+=31;
}
sum+=d;
cout<<sum<<endl;
}
}
using namespace std;
main()
... {
int y,m,d;
char c;
while(cin>>y>>c>>m>>c>>d)
...{
int sum=0;
switch(m)
...{
case 12:sum+=30;
case 11:sum+=31;
case 10: sum+=30;
case 9: sum+=31;
case 8: sum+=31;
case 7: sum+=30;
case 6: sum+=31;
case 5: sum+=30;
case 4: sum+=31;
case 3: if((y%4==0&&y%100!=0)||(y%400==0))
sum+=29;
else sum+=28;
case 2: sum+=31;
}
sum+=d;
cout<<sum<<endl;
}
}
PS:注意这里输入日期的技巧,char c ,用来把“/”吃去,呵呵~
另外,这里的case是倒着日期并且错了一个月份