【问题描述】

在我们现在使用的日历中, 闰年被定义为能被4整除的年份,但是能被100整除而不能被400整除的年是例外,它们不是闰年。例如:1700, 1800, 1900 和 2100 不是闰年,而 1600, 2000 和 2400是闰年。 给定从公元2000年1月1日开始逝去的天数,你的任务是给出这一天是哪年哪月哪日星期几。

【输入形式】

输入包含若干行,每行包含一个正整数,表示从2000年1月1日开始逝去的天数。输入最后一行是−1, 不必处理。可以假设结果的年份不会超过9999。

【输出形式】

对每个测试样例,输出一行,该行包含对应的日期和星期几。格式为“YYYY-MM-DD DayOfWeek”, 其中 “DayOfWeek” 必须是下面中的一个: “Sunday”, “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday” and "Saturday“。

【样例输入】

1730
1740
1750
1751
-1
【样例输出】

2004-09-26 Sunday
2004-10-06 Wednesday
2004-10-16 Saturday
2004-10-17 Sunday

【思路分析】
类似加法的进位原理,判断何时需要进位,准确控制精确输出

#include<iostream>
using namespace std;
int main(){int time;while(cin>>time){if(time==-1)break;int day=1,month=1,year=2000;for(int i=0;i<time;i++){day++;if(day==31){//小月 if(month==4||month==6||month==9||month==11){month++;day=1;}}else if(day==32){//大月 if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){month++;day=1;}}else if(day>=29&&month==2){//二月 if((year%4==0&&year%100!=0)||year%400==0){if(day==30){day=1;month++;}}else {day=1;month++;} }if(month==13){month=1;year++;}}cout<<year<<"-";if(month<10)cout<<"0"<<month<<"-";else cout<<month<<"-";if(day<10)cout<<"0"<<day<<" ";else cout<<day<<" ";if(time%7==1)cout<<"Sunday"<<endl;else if(time%7==2)cout<<"Monday"<<endl;else if(time%7==3)cout<<"Tuesday"<<endl;else if(time%7==4)cout<<"Wednesday"<<endl;else if(time%7==5)cout<<"Thursday"<<endl;else if(time%7==6)cout<<"Friday"<<endl;else cout<<"Saturday"<<endl;}return 0;
}

湖南大学21夏训练四4.日历问题相关推荐

  1. 湖南大学21夏训练四12.疫情期间

    [问题描述] 正值新冠疫情期间,阿迪没法返回学校学习,他希望通过参加一些比赛来提高一下编程技能,同时做做运动.他收集了接下来的 n 天里每一天的信息,包括健身房是否开放,或者互联网上是否有程序设计竞赛 ...

  2. 湖南大学21夏训练四7.斯诺克台球

    [问题描述] 斯诺克台球是一项古老而又时尚的运动,使用长方形球桌,台面四角以及两长边中心位置各有一个球袋,使用的球分为1个白球,15个红球和6个彩球共22个球. 其中母球(白球)1只,目标球21只.目 ...

  3. 湖南大学21夏训练四20.恺撒Caesar密码

    [问题描述] Julius Caesar 生活在充满危险和阴谋的年代.为了生存,他首次发明了密码,用于军队的消息传递.假设你是Caesar 军团中的一名军官,需要把Caesar 发送的消息破译出来.并 ...

  4. 湖南大学21夏训练四2.最简单的计算机

    [问题描述] 一个名叫是 PigHeadThree 的研究组织设计了一台实验用的计算机,命名为 PpMm.PpMm只能执行简单的六种命令 A,B,C,D,E,F:只有二个内存 M1,M2:三个寄存器 ...

  5. 湖南大学21夏训练四18.身份证校验

    [问题描述] 我国国标[GB 11643-1999]中规定:公民身份号码是18位特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字 ...

  6. 湖南大学21夏训练四3.相同生日

    [问题描述] 在一个有n个人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的学号,出生月日,试找出所有生日相同的学生. [输入形式] 第一行为整数n,表示有n个学生,n<=200.此 ...

  7. 湖南大学21夏训练四16.逆序数

    问题描述 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序.一个排列中逆序的总数就称为这个排列的逆序数.也就是说,对于n个不同的元素,先规定各元素之间有 ...

  8. 湖南大学21夏训练四9.相等的多项式

    问题描述 小明现在在学习多项式的展开:就是把一个形如 (x+a1) (x+a2) - (x+an) 展开成如下形式: xn + b1xn-1 + b2xn-2 + - + bn-1x + bn 比如 ...

  9. 湖南大学21夏训练四21.回文串

    问题描述 "回文串"是一个正读和反读都一样的字符串,比如"level"或者"noon"等等就是回文串.给你一个字符串,问最少在字符串尾添加多 ...

最新文章

  1. java写方法用来调用_Java从入门到入土(79)lambda表达式和方法引用
  2. iptables —— Iptables防火墙规则使用梳理
  3. oracle实例无法启动也无法关闭
  4. 仿京东首页上侧导航左侧地址栏布局(1)
  5. 测试socket udp 单次传输数据上限(sendto()函数data不能超过65507字节。udp头占8字节,ip头占20字节,加起来正好65535字节)
  6. 【iMX6ULL】触觉 imx6ull开发板交叉编译环境搭建
  7. VM中Windows server 2012 R2系统安装SQL SERVER 2012的安装步骤
  8. 【网络基础】《TCP/IP详解》学习笔记3
  9. 参加 JSConf China 2019 是怎样的体验?VS Code 和 TypeScript 都很火
  10. MySQL 的索引是什么?怎么优化?
  11. 在DataWorks标准模式下统计个人账号使用资源情况
  12. java组件_三个必不可少的Java平台组件:什么是JVM,JDK,JRE?有啥区别?
  13. iOS 唤起各种App的方法总结
  14. 基于PHP+MySQL共享自行车租赁管理系统的设计与实现
  15. 关于设计思维的理解与思考
  16. 10015---SpringMVC--自定义视图
  17. 【最佳实践】分布式数据库对接开源监控软件
  18. 使用Lucene对doc、docx、pdf、txt文档进行全文检索功能的实现
  19. 【编译原理】确定有限自动机与非确定有限自动机
  20. Caliburn.Micro 杰的入门教程3,事件和参数

热门文章

  1. java-php-python-ssm汽车租赁系统计算机毕业设计
  2. A55+A76+GIC400大小核终于跑起来内核了
  3. asp.net1058-二手车交易网站——毕业设计
  4. Linux find命令:查找文件或目录
  5. python 冒泡排序及优化_Python冒泡排序及优化
  6. 摩尔庄园不同服务器账号互通吗,摩尔庄园手游服务器互通吗?不同服务器数据互通机制详解...
  7. UDP解决丢包问题总结
  8. codol服务器维护,服务器架构升级CODOL跨区作战时代来临
  9. 设置mac vim彩色
  10. 自治医科大学和CureApp, Inc.:首个Digital Therapeutics治疗高血压的3期临床试验在日本启动