1 #include <iostream> 2 #include <string> 3 using namespace std; 4 int main(){ 5 cout<<"请输入一个日期:"<<endl; 6 int a; 7 cin>>a; 8 bool hehe=false; 9 if (99999999<a&&a<10000000) 10 { 11 hehe=true; 12 } 13 while(hehe) 14 { 15 cout<<"输入的日期位数不够或者超出!请重新输入:"<<endl; 16 cin>>a; 17 if (99999999<a&&a<10000000) 18 { 19 hehe=true; 20 } 21 else 22 { 23 hehe=false; 24 } 25 } 26 int day; 27 day=a%10; 28 int c; 29 c=a/10%10; 30 day=day+(c*10); 31 c=a/100%10; 32 int month; 33 month=a/1000%10; 34 month=(month*10)+c; 35 c=a/10000%10; 36 int year; 37 year=c; 38 c=a/100000%10; 39 year=year+(c*10); 40 c=a/1000000%10; 41 year=year+(c*100); 42 c=a/10000000%10; 43 year=year+(c*1000); 44 if(year<1000) 45 { 46 cout<<"输入年份错误!"<<endl; 47 return 0; 48 } 49 50 if(month>12) 51 { 52 cout<<"输入月份错误!"<<endl; 53 return 0; 54 } 55 if (day>31) 56 { 57 cout<<"输入日期错误!"<<endl; 58 return 0; 59 } 60 int max=0; 61 if((year%4==0&&year%100!=0)||(year%400==0)) 62 { 63 cout<<"您的日期是闰年!"<<endl; 64 switch(month) 65 { 66 case 1:max=day;break; 67 case 2:max=day+29;break; 68 case 3:max=day+31+29;break; 69 case 4:max=day+(31*2)+29;break; 70 case 5:max=day+(31*2)+29+30;break; 71 case 6:max=day+(31*3)+29+30;break; 72 case 7:max=day+(31*3)+29+(30*2);break; 73 case 8:max=day+(31*4)+29+(30*2);break; 74 case 9:max=day+(31*5)+29+(30*2);break; 75 case 10:max=day+(31*5)+29+(30*3);break; 76 case 11:max=day+(31*6)+29+(30*3);break; 77 case 12:max=day+(31*6)+29+(30*4);break; 78 } 79 } 80 else 81 { 82 cout<<"您的日期不是闰年!"<<endl; 83 switch(month) 84 { 85 case 1:max=day;break; 86 case 2:max=day+28;break; 87 case 3:max=day+31+28;break; 88 case 4:max=day+(31*2)+28;break; 89 case 5:max=day+(31*2)+28+30;break; 90 case 6:max=day+(31*3)+28+30;break; 91 case 7:max=day+(31*3)+28+(30*2);break; 92 case 8:max=day+(31*4)+28+(30*2);break; 93 case 9:max=day+(31*5)+28+(30*2);break; 94 case 10:max=day+(31*5)+28+(30*3);break; 95 case 11:max=day+(31*6)+28+(30*3);break; 96 case 12:max=day+(31*6)+28+(30*4);break; 97 } 98 } 99 cout<<"您输入的日期是今年的第:"<<max<<"天。"<<endl; 100 }