1960 - 日期计算
如题,输入一个日期,格式如:2010 10 24 ,判断这一天是这一年中的第几天。
Input
第一行输入一个数N(0<N<=100),表示有N组测试数据。后面的N行输入多组输入数据,每行的输入数据都是一个按题目要求格式输入的日期。
Output
每组输入数据的输出占一行,输出判断出的天数n
Examples
Input
3 2000 4 5 2001 5 4 2010 10 24
Output
96 124 297
Solution C
#include<stdio.h> int main() { int N,a,b,c,i,m,sum; while(~scanf("%d",&N)) { while(N--) { sum=0; scanf("%d%d%d",&a,&b,&c); if(a%400==0||a%4==0&&a%100!=0) { for(i=1;i<b;i++) {if(i==2) m=29; else if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) m=31; else if(i==4||i==6||i==9||i==11) m=30; sum+=m;} } else { for(i=1;i<b;i++) {if(i==2) m=28; else if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) m=31; else if(i==4||i==6||i==9||i==11) m=30; sum+=m;} } sum=sum+c; printf("%d\n",sum); } } return 0; }
Solution C++
#include<bits/stdc++.h> using namespace std; int a[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; bool check(int y) { if(y%4==0&&y%100!=0||y%400==0) { return true; } return false; } int main() { int n; cin>>n; while(n--) { int y,m,d; cin>>y>>m>>d; int cnt=0; for(int i=1;i<m;i++) { cnt+=a[i]; } cnt+=d; if(m>2&&check(y)) cnt++; cout<<cnt<<endl; } }