第一个问题:他需要获取系统的时间,但是对于C++来说,获取当前系统的时间,贼麻烦,所以在这里我们推荐一个绝对时间的概念,也就是我们认为0001-01-01号为周一,我们认为这个时间是1天,也就是对于所给的日期,我们要给年份减一,然后去算零着的天数,算出总天数减一求余7,就是我们所要的周几,我们需要的是把"Monday","Tuesday"......从0到6存到数组里就好了

第二个问题:闰年问题,即年份整除4但不整除100或整除100的年份,那么我们如何去求当前的年份到底包含几个闰年呢?这个有点数据处理的小技巧,假设给的是2017-xx-xx,我们要处理的是2016,2016+2016/4-2016/100,因为闰年是多一天,有几个闰年就是多几天,我们除以4就是2016里面有几个4,再减去100就是减去那些整除100的年份,再把减去的整除400的年份加回来就ok了

7-11 mmh学长的万能日历 (20分)

mmh学长的万能日历

某一天,小白发现mmh学长有一个万能日历,可以任意查询某一天 是周几,于是也来模拟实现一个类似的日历。 请从系统获取今天是周几,然后计算所给定的日期是周几。

输入格式:

第一行一个正整数T(T≤100),表示有T组数据。 接下来T行,每行以XXXX-XX-XX形式给出, 其中年份从0001-9999,输入保证日期合法。

输出格式:

对于每一个输入,输出所指定日期是周几,用英文全称输出。

输入样例:

1
2020-01-22

输出样例:

Wednesday
#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
string Day[7] = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
int get_month_day[2][12] = {{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};
bool is_year(int x)
{if((x%4==0&&x%100!=0)||(x%400==0)) return true;else return false;
}
int main()
{int t;cin>>t;while(t--){int year,month,day;//0001-01-01 Mondayint sum = 0;scanf("%d-%d-%d",&year,&month,&day);sum += ((year-1)*365 + (year-1)/4 - (year-1)/100 + (year-1)/400);bool flag = is_year(year);for(int i = 0; i < month-1; i++){sum += get_month_day[flag][i];}sum += day;cout<<Day[sum%7]<<endl;}return 0;
}

7-11 mmh学长的万能日历 (20分)相关推荐

  1. 天梯模拟--约瑟夫问题(7-18 猴子选大王 (20 分))

    约瑟夫问题(有时也称为约瑟夫斯置换,是一个出现在计算机科学和数学中的问题.在计算机编程的算法中,类似问题又称为约瑟夫环.又称"丢手绢问题".)据说著名犹太历史学家 Josephus ...

  2. Java 写的万能日历-窗体程序 完整代码

    开发环境 开发语言为Java,开发环境Eclipse或者IDEA都可以.数据库采用:MySQL.运行主程序,或者执行打开JAR文件即可以运行本程序. 系统框架 利用JDK自带的SWING框架开发,不需 ...

  3. PTA—输出全排列 (20分) 递归回溯思想

    PTA-输出全排列 (20分) 递归回溯思想 题目要求: 请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间. 输入格式: 输入给出 ...

  4. 5-3 最长连续递增子序列 (20分)

    5-3 最长连续递增子序列 (20分) 给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列.例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8 ...

  5. B1013 数素数(20分)

    B1013 数素数(20分) 令 \(P​_i\)表示第 i 个素数.现任给两个正整数 \(M≤N≤10^4\),请输出 \(P_M\)到 \(P_N\)的所有素数. 输入格式: 输入在一行中给出 M ...

  6. 1053 住房空置率 (20 分)

    1053 住房空置率 (20 分) 在不打扰居民的前提下,统计住房空置率的一种方法是根据每户用电量的连续变化规律进行判断.判断方法如下: 在观察期内,若存在超过一半的日子用电量低于某给定的阈值 e,则 ...

  7. 7-1 最大子列和问题 (20 分)

    7-1 最大子列和问题 (20 分) 给定K个整数组成的序列{ N1, N​2​​ , -, N​K​​ },"连续子列"被定义为{ N​i , Ni+1 , -, N​j​​ } ...

  8. 7-1 抓老鼠啊~亏了还是赚了? (20 分)

    7-1 抓老鼠啊~亏了还是赚了? (20 分) 某地老鼠成灾,现悬赏抓老鼠,每抓到一只奖励10元,于是开始跟老鼠斗智斗勇:每天在墙角可选择以下三个操作:放置一个带有一块奶酪的捕鼠夹(T),或者放置一块 ...

  9. C语言满分代码:L1-056 猜数字 (20分)

    立志用更少的代码做更高效的表达 L1-056 猜数字 (20分) 一群人坐在一起,每人猜一个 100 以内的数,谁的数字最接近大家平均数的一半就赢.本题就要求你找出其中的赢家. 输入格式: 输入在第一 ...

  10. C++学习之路 | PTA乙级—— 1084 外观数列 (20 分)(精简)

    1084 外观数列 (20 分) 外观数列是指具有以下特点的整数序列: d, d1, d111, d113, d11231, d112213111, - 它从不等于 1 的数字 d 开始,序列的第 n ...

最新文章

  1. 利用sqlmap对网站进行sql注入检测
  2. 计算机网络·CSMA/CD协议有关计算
  3. bzoj 5216 [Lydsy2017省队十连测]公路建设 线段树维护 最小生成树
  4. 王佩丰第2讲-excel单元格格式设置 笔记
  5. 手机知识:90Hz或120Hz屏幕刷新率有啥区别,看完你就懂了!
  6. gather torch_浅谈Pytorch中的torch.gather函数的含义
  7. java 设计模式 prototype_Java设计模式之Prototype原型模式
  8. 模电之半导体基础篇3(半导体二极管、二极管应用)
  9. 伦巴时间步的动作要领_拉丁舞教学视频,拉丁伦巴舞基本动作
  10. goquery php,golang:Goquery简单爬虫实例
  11. fastunfolding算法_社区发现算法综述—part1
  12. key rocketmq 有什么用_rocketmq 介绍(一)
  13. 鸿蒙移植stm32,韦东山老师要移植鸿蒙的那个STM32MP157具体是什么?
  14. oracle数据库中sql语句性能提升之to_char改造
  15. linux中间人攻击工具,[web安全]使用ARPspoof进行中间人(MiTM)攻击
  16. PC端微信自动发送机器人
  17. 更改访问局域网win7计算机的用户,win7局域网共享设置 win7局域网共享设置方法...
  18. 青囊如可授 从此访鸿蒙的意思,有关于中元节的诗内容
  19. 介词php,介词短语作状语
  20. AskyBlock插件配置教程

热门文章

  1. [android开发IDE]adt-bundle-windows-x86的一个bug:无法解析.rs文件--------rs_core.rsh file not found...
  2. dotCMS学习记录--结构
  3. inventor整理资源中心收藏夹
  4. oauth2 token为空拦截_OAuth2 Token 一定要放在请求头中吗?
  5. access 记录集 filter find属性_[网页编程]-07 jQuery 操作页面元素属性
  6. 拓端tecdat|R语言分位数回归Quantile Regression分析租房价格
  7. SpringBoot 嵌入式web容器的启动原理
  8. java aes输出长度_关于Java下的AES加密明文长度的问题
  9. python实现创建数据表并写入数据
  10. python实现不同图像数据的叠加处理、实现多张图像数据以子图形式组合为新的图像数据【图像叠加、图像组合】