HDU6010 Daylight Saving Time
Posted BBBob
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU6010 Daylight Saving Time相关的知识,希望对你有一定的参考价值。
1 /* 2 HDU6010 Daylight Saving Time 3 http://acm.hdu.edu.cn/showproblem.php?pid=6010 4 模拟 5 题意:算当前时间是否是夏令时 6 7 */ 8 #include <cstdio> 9 #include <algorithm> 10 using namespace std; 11 //#define test 12 int yy,mm,dd,h,m,s; 13 void read() 14 { 15 scanf("%d",&yy); 16 getchar(); 17 scanf("%d",&mm); 18 getchar(); 19 scanf("%d",&dd); 20 getchar(); 21 scanf("%d",&h); 22 getchar(); 23 scanf("%d",&m); 24 getchar(); 25 scanf("%d",&s); 26 #ifdef test 27 printf("%d-%d-%d %d:%d:%d\n",yy,mm,dd,h,m,s); 28 29 #endif 30 } 31 int main() 32 { 33 int t; 34 //freopen("in.in","r",stdin); 35 scanf("%d",&t); 36 for(int l=1;l<=t;l++) 37 { 38 int day=0; 39 printf("Case #%d: ",l); 40 read(); 41 if(mm>=4 && mm<=10) 42 { 43 printf("PDT\n"); 44 continue; 45 } 46 else if(mm==1 || mm==2 || mm==12) 47 { 48 printf("PST\n"); 49 continue; 50 } 51 else if(mm==3) 52 { 53 day=0; 54 day+=(yy-2007)*365; 55 //printf("day:%d\n",day); 56 if(yy!=2007) 57 day+=(yy-2008)/4+1; 58 //printf("day:%d\n",day); 59 if(yy==2100) 60 day--; 61 day+=59; 62 int day1=day+1; 63 //printf("day:%d\n",day); 64 int ss1=day1%7; 65 int fenjie; 66 if(ss1==0) 67 fenjie=8; 68 else 69 fenjie=15-ss1; 70 #ifdef test 71 //fenjie++; 72 printf("ss1:%d\n",ss1); 73 printf("fenjie:%d\n",fenjie); 74 #endif 75 if(dd<fenjie) 76 { 77 printf("PST\n"); 78 continue; 79 } 80 else if(dd>fenjie) 81 { 82 printf("PDT\n"); 83 continue; 84 } 85 else 86 { 87 if(h==2) 88 { 89 printf("Neither\n"); 90 continue; 91 } 92 else if(h>2) 93 { 94 printf("PDT\n"); 95 continue; 96 } 97 else 98 { 99 printf("PST\n"); 100 continue; 101 } 102 } 103 104 } 105 else if(mm==11) 106 { 107 day+=(yy-2007)*365; 108 if(yy!=2007) 109 day+=(yy-2008)/4+1; 110 if(yy==2100) 111 day--; 112 day+=304; 113 int day1=day+1; 114 int ss1=day1%7; 115 int fenjie; 116 if(ss1==0) 117 fenjie=1; 118 else 119 fenjie=8-ss1; 120 #ifdef test 121 //fenjie++; 122 printf("ss1:%d\n",ss1); 123 printf("fenjie:%d\n",fenjie); 124 #endif 125 if(dd<fenjie) 126 { 127 printf("PDT\n"); 128 continue; 129 } 130 else if(dd>fenjie) 131 { 132 printf("PST\n"); 133 continue; 134 } 135 else 136 { 137 if(h==1) 138 { 139 printf("Both\n"); 140 continue; 141 } 142 else if(h<1) 143 { 144 printf("PDT\n"); 145 continue; 146 } 147 else 148 { 149 printf("PST\n"); 150 continue; 151 } 152 } 153 } 154 } 155 156 return 0; 157 }
以上是关于HDU6010 Daylight Saving Time的主要内容,如果未能解决你的问题,请参考以下文章