• 蓝桥杯 算法提高 日期计算


      算法提高 日期计算  
    时间限制:1.0s   内存限制:256.0MB
        
    问题描述
      已知2011年11月11日是星期五,问YYYY年MM月DD日是星期几?注意考虑闰年的情况。尤其是逢百年不闰,逢400年闰的情况。
    输入格式
      输入只有一行
      YYYY MM DD
    输出格式
      输出只有一行
      W
    数据规模和约定
      1599 <= YYYY <= 2999
      1 <= MM <= 12
      1 <= DD <= 31,且确保测试样例中YYYY年MM月DD日是一个合理日期
      1 <= W <= 7,分别代表周一到周日
    样例输入
    2011 11 11
    样例输出
    5
    

    c++:

     1 #include<iostream> 
     2 #include<cstring>
     3 #include<cstdio>
     4 using namespace std;
     5 
     6 int a[2][13]={{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};
     7 
     8 bool isRun(int year){//判断是否为闰年
     9     if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
    10         return true;
    11     return false;
    12 }
    13 
    14 int calDay(int year){
    15     int index = 0;
    16     if(!isRun(year)) index = 1;
    17     int tot = 0;
    18     for(int i=1; i<=12; ++i)
    19         tot += a[index][i];
    20     return tot;
    21 }
    22 
    23 int Day(int y, int m, int d){//计算从0年0月0日到y年m月d日的时间天数 
    24     int ans = 0;
    25     for(int i=1; i<y; ++i)
    26         ans+=calDay(i);
    27     int index = 0;
    28     if(!isRun(y)) index = 1;
    29     for(int i=1; i<m; ++i)
    30         ans += a[index][i];
    31     ans += d;
    32     return ans;
    33 }
    34 
    35 int main(){
    36     int y, m, d;
    37     cin>>y>>m>>d;
    38     int diff = Day(y, m, d) - Day(2011, 11, 11);//已知2011-11-11这一天是星期5 
    39     if(diff > 0) cout<<(4+diff%7)%7+1<<endl;
    40     else{
    41         for(int i=1; i<=7; ++i)
    42             if((i-1 + -diff%7)%7 + 1 == 5){
    43                 cout<<i<<endl;
    44                 break;
    45             }
    46     }
    47     return 0;
    48 }
  • 相关阅读:
    ASP.NET页面事件执行过程 总结
    程序员最应该读的图书(中译版) [收藏]
    C# 中的委托和事件的详解资料
    已添加项。字典中的关键字
    TFS 删除团队项目集合
    注册后第一篇
    类型的权限已失败 SqlClientPermission
    C#创建Oracle存储过程
    使用MySQL with 递归查询菜单树
    MySQL 常用TSQL(持续更新...)
  • 原文地址:https://www.cnblogs.com/hujunzheng/p/4395845.html
Copyright © 2020-2023  润新知