zoukankan      html  css  js  c++  java
  • hdu 6010 Daylight Saving Time

    题意:就是每年的三月第二个周日和11月第一个周日是特殊的日子,会有时区的变化

    思路:XJB判断 

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 const int N=1e5+10;
     5 
     6 
     7 int a[15]={0,31,29,31,30,31,30,31,31,30,31,30,31};
     8 int b[15]={0,31,28,31,30,31,30,31,31,30,31,30,31};
     9 int dd[3000][20][50];
    10 
    11 void init(){
    12     int t=1;
    13     for(int i=2007;i<=2100;i++)
    14     for(int j=1;j<=12;j++){
    15         int xx;
    16         if((i%4==0&&i%100!=0)||i%400==0) xx=a[j];
    17         else xx=b[j];
    18         for(int k=1;k<=xx;k++){
    19             dd[i][j][k]=t;
    20             t++;
    21             if(t==8) t=1;
    22         }
    23     }
    24 }
    25 
    26 int main(){
    27     init();
    28     int  t;
    29     int k=1;
    30     cin>>t;
    31     while(t--){
    32         int y,m,d;
    33         int h,f,s;
    34         scanf("%d-%d-%d %d:%d:%d",&y,&m,&d,&h,&f,&s);
    35         printf("Case #%d: ",k++);
    36         int xx;
    37         if(m<3) {
    38             cout<<"PST"<<endl;continue;
    39         }
    40         else if(m>3&&m<11){
    41             cout<<"PDT"<<endl;continue;
    42         }
    43         else if(m>11){
    44             cout<<"PST"<<endl;continue;
    45         }
    46         if((y%4==0&&y%100!=0)||y%400==0) xx=a[m];
    47         else xx=b[m];
    48         int y1=0,m1=0,d1=0;
    49         int y3=0,m3=0,d3=0;
    50         int tt=0;
    51 
    52         int sss=0;
    53         for(int i=1;i<=xx;i++){
    54             if(dd[y][m][i]==7){
    55                 sss++;
    56             }
    57             if(sss==2&&m==3){
    58                 tt=1;y3=y;m3=m;d3=i;break;
    59             }
    60             else if(sss==1&&m==11){
    61                 tt=2;y1=y;m1=m;d1=i;break;
    62             }
    63         }
    64 
    65         if(tt==1){
    66             if(d>d3) cout<<"PDT"<<endl;
    67             else if(d<d3) cout<<"PST"<<endl;
    68             else {
    69                 int tz=s+f*60+h*60*60;
    70               //  cout<<tz<<endl;
    71                 if(tz<2*60*60) cout<<"PST"<<endl;
    72                 else if(tz>=2*60*60&&tz<3*60*60) cout<<"Neither"<<endl;
    73                 else {
    74                     cout<<"PDT"<<endl;
    75                 }
    76             }
    77         }
    78         else if(tt==2){
    79             if(d<d1) cout<<"PDT"<<endl;
    80             else if(d>d1) cout<<"PST"<<endl;
    81             else {
    82                 int tz=s+f*60+h*60*60;
    83                 if(tz<1*60*60) cout<<"PDT"<<endl;
    84                 else if(tz>=60*60&&tz<2*60*60) cout<<"Both"<<endl;
    85                 else cout<<"PST"<<endl;
    86             }
    87         }
    88     }
    89 }
  • 相关阅读:
    css基础教程
    网页加载-上下幕布分开
    Vue-Aixos
    webpack学习
    Vue、Element 路由跳转,左侧菜单高亮显示,页面刷新不会改变当前高亮菜单
    Vue知识概括
    JSON.parse() 与 JSON.stringify()
    Bootstrap4 样式笔记
    ES6基础语法
    V-model 双向绑定的原理是什么?
  • 原文地址:https://www.cnblogs.com/hhxj/p/7525860.html
Copyright © 2011-2022 走看看