zoukankan      html  css  js  c++  java
  • *模板--杂

    星期几问题

     1 /*
     2  *  已知1752年9月3日是Sunday,并且日期控制在1700年2月28日后
     3  */
     4 char name[][15] = { "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"};
     5 
     6 int main()
     7 {
     8     int d, m, y, a;
     9     printf("Day: ");
    10     scanf("%d", &d);
    11     printf("Month: ");
    12     scanf("%d", &m);
    13     printf("Year: ");
    14     scanf("%d", &y);
    15     //  1月2月当作前一年的13,14月
    16     if (m == 1 || m == 2)
    17     {
    18         m += 12;
    19         y--;
    20     }
    21     //  判断是否在1752年9月3日之前,实际上合并在一起倒更加省事
    22     if ((y < 1752) || (y == 1752 && m < 9) || (y == 1752 && m == 9 && d < 3))
    23     {
    24         //  因为日期控制在1700年2月28日后,所以不用考虑整百年是否是闰年
    25         a = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 + 5) % 7;
    26     }
    27     else
    28     {
    29         //  这里需要考虑整百年是否是闰年的情况
    30         a = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400) % 7;  //  实际上这个可以当做公式背下来
    31     }
    32     printf("it's a %s
    ", name[a]);
    33     return 0;
    34 }
    View Code
  • 相关阅读:
    杂谈
    MD语法
    1034 有理数四则运算(20 分)
    1033 旧键盘打字(20 分)
    1032 挖掘机技术哪家强(20 分)
    1031 查验身份证(15 分)
    1030 完美数列(25 分)
    1029 旧键盘(20 分)
    1028 人口普查(20 分)
    1027 打印沙漏(20 分)
  • 原文地址:https://www.cnblogs.com/yijiull/p/7716246.html
Copyright © 2011-2022 走看看