标签:pen 技术分享 拒绝 str bsp isl printf 帮助 存在
1 #include<iostream> 2 #include<algorithm> 3 #include<string> 4 #include<cstdio> 5 6 using namespace std; 7 8 bool isLeap(int year) 9 { 10 return ((year%4 == 0 && year%100 != 0) || (year%400 == 0)); 11 } 12 13 void solve(int x, int y, int z) 14 { 15 if(x>31) 16 printf("20%02d-%02d-%02d\n", x, y, z); 17 else if(x == 0 || z == 0){// 情况复杂....... 18 if(x==0) 19 printf("20%02d-%02d-%02d\n", x, y, z); 20 else{ 21 int a=x>y?x:y; 22 int b=x<y?x:y; 23 if(a!=b){ 24 printf("20%02d-%02d-%02d\n", z, b, a); 25 printf("20%02d-%02d-%02d\n", z, a, b); 26 } 27 else 28 printf("20%02d-%02d-%02d\n", z, x, x); 29 } 30 } 31 else if(z>31){ // 日月年 或 月日年 32 if(x>12){ // 日月年 33 printf("20%02d-%02d-%02d\n", z, y, x); 34 } 35 else if(y>12){ //月日年 36 printf("20%02d-%02d-%02d\n", z, x, y); 37 } 38 else{ 39 int a=x>y?x:y; 40 int b=x<y?x:y; 41 if(b==a){ 42 printf("20%02d-%02d-%02d\n", z, b, a); 43 } 44 else{ 45 printf("20%02d-%02d-%02d\n", z, b, a); 46 printf("20%02d-%02d-%02d\n", z, a, b); 47 } 48 49 } 50 } 51 else if(x>12){ // 日月年 52 printf("20%02d-%02d-%02d\n", z, y, x); 53 } 54 else if(x<=12){ // 三种 55 if(y>12){ // 56 printf("20%02d-%02d-%02d\n", z, x, y); 57 } 58 else if(x != 2 || y != 2){ // 先排除 2 月 59 int a[3];a[0]=x;a[1]=y;a[2]=z; 60 sort(a, a+3); 61 if(x=y=z) 62 printf("20%02d-%02d-%02d\n", x, y, z); 63 return; 64 if(x == y){ 65 printf("20%02d-%02d-%02d\n", x, y, z); 66 printf("20%02d-%02d-%02d\n", z, x, y); 67 return; 68 } 69 if(x == z){ 70 printf("20%02d-%02d-%02d\n", x, y, z); 71 printf("20%02d-%02d-%02d\n", x, z, y); 72 return; 73 } 74 printf("20%02d-%02d-%02d\n", a[0], a[1], a[2]); 75 printf("20%02d-%02d-%02d\n", a[2], a[0], a[1]); 76 printf("20%02d-%02d-%02d\n", a[2], a[1], a[0]); 77 } 78 else{ // 考虑闰年和平年的条件 79 if(!isLeap(2000+x) && z == 29){ // 如果是闰年 80 printf("20%02d-%02d-%02d\n", z, x, y); 81 } 82 else{ 83 printf("20%02d-%02d-%02d\n", z, x, y); 84 printf("20%02d-%02d-%02d\n", x, y, z); 85 } 86 } 87 } 88 89 } 90 91 int main() 92 { 93 string t; 94 cin>>t; 95 int x, y, z; 96 // 02/03/04 97 x = int(t.at(0)-‘0‘)*10 + int(t.at(1)-‘0‘); 98 y = int(t.at(3)-‘0‘)*10 + int(t.at(4)-‘0‘); 99 z = int(t.at(6)-‘0‘)*10 + int(t.at(7)-‘0‘); 100 // 年 / 月 /日 101 // 月 / 日 /年 102 // 日 / 月 /年 103 solve(x, y, z); 104 // printf("20%02d-%02d-%02d\n", x, y, z); 105 106 return 0; 107 }
标签:pen 技术分享 拒绝 str bsp isl printf 帮助 存在
原文地址:https://www.cnblogs.com/mabeyTang/p/9982498.html