zoukankan      html  css  js  c++  java
  • What day is it

    Description

    Today is Saturday, 17th Nov,2007. Now, if i tell you a date, can you tell me what day it is ?       
                  

    Input

    There are multiply cases.        One line is one case.        There are three integers, year(0<year<10000), month(0<=month<13), day(0<=day<32).       
                  

    Output

    Output one line.        if the date is illegal, you should output "illegal". Or, you should output what day it is.       
            

    Sample Input

    2007 11 17
                  

    Sample Output

    Saturday
     
     
    注意这题细节很多,我是从0001年01月01日为周一考虑的。
     1 #include <iostream>
     2 #include <stdio.h>
     3 #include <cstring>
     4 using namespace std;
     5 int a[]={0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
     6 int b[]={0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
     7 char c[8][11]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
     8 int panduan(int y)
     9 {
    10     if((y%4==0 && y%100!=0) || y%400==0)
    11         return 1;
    12     return 0;
    13 }
    14 int main()
    15 {
    16    int y, m, d, sum, i;
    17    while(cin>>y>>m>>d)
    18    {
    19       if(panduan(y))
    20       {
    21           if(d>b[m]||m==0||d==0)
    22             {
    23                 cout << "illegal" << endl;
    24                 continue;
    25             }
    26       }
    27       else
    28         {
    29             if(d>a[m]||m==0||d==0)
    30             {
    31                 cout << "illegal" << endl;
    32                 continue;
    33             }
    34         }
    35         sum=0;
    36         for (i=1; i<y; ++i)
    37             {
    38                if(panduan(i))
    39                 sum += 366;
    40                else
    41                 sum += 365;
    42 
    43             }
    44         for(int i = 0; i < m; ++i)
    45         {
    46             if(panduan(y))
    47                 sum += b[i];
    48             else
    49                 sum += a[i];
    50 
    51         }
    52         sum+=d;
    53         sum%=7;
    54         cout<< c[sum] << endl;
    55    }
    56    return 0;
    57 }
  • 相关阅读:
    算法学习(二)——树状数组求逆序数
    ZOJ 2412 Farm Irrigation
    排列的生成算法(一)
    汉诺塔递归实现
    汇编(五)
    汇编(四)
    汇编(三)
    汇编(二)
    0103MySQL中的B-tree索引 USINGWHERE和USING INDEX同时出现
    0103如何通过索引长度确定是否使用全索引
  • 原文地址:https://www.cnblogs.com/wangmengmeng/p/4552499.html
Copyright © 2011-2022 走看看