任务描述

X想知道某年某月的日历,你能为他编程输出吗?

输入格式:

输入一行,两个正整数,分别代表年份和月份。

输出格式:

严格按样例格式输出一个月的日历。
第1行输出月份简称和年份,中间有个圆点和空格。
第2行输出表头,为星期一至星期日的缩写,每个单词之间一个空格。
第3行为28个减号。
接下来的几行是日历内容,每个日期输出时占3列,日期前后之间再加1个空格,保证与相对应的星期名称右对齐。

输入样例:

2019 9

输出样例:

SEP. 2019
Mon Tue Wed Thu Fri Sat Sun
---------------------------12   3   4   5   6   7   89  10  11  12  13  14  1516  17  18  19  20  21  2223  24  25  26  27  28  2930

提示

重要提示:1900年1月1日是星期一。
星期一:Monday 缩写:Mon.
星期二:Tuesday 缩写:Tue.
星期三:Wednesday 缩写:Wed.
星期四:Thursday 缩写:Thu.
星期五:Friday 缩写:Fri.
星期六:Saturday 缩写:Sat.
星期日:Sunday 缩写:Sun.
一月份JAN.
二月份FEB.
三月份MAR.
四月份APR.
五月份MAY.
六月份JUN.
七月份JUL.
八月份AUG.
九月份SEP.
十月份OCT.
十一月份NOV.
十二月份DEC.

代码如下:

#include<iostream>
using namespace std;
int main() {int y,M,m,x,sum=0;cin>>y>>M;  if(M==1||M==3||M==5||M==7||M==8||M==10||M==12)  //本月有多少天x=31;if(M==4||M==6||M==9||M==11)x=30;if(M==2){if((y%4==0&&y%100!=0)||(y%400==0))x=29;elsex=28;}string ch;  //表示月份switch(M){case 1:{ch="JAN";break;}case 2:{ch="FEB";break;}case 3:{ch="MAR";break;}case 4:{ch="APR";break;}case 5:{ch="MAY";break;}case 6:{ch="JUN";break;}case 7:{ch="JUL";break;}case 8:{ch="AUG";break;}case 9:{ch="SEP";break;}case 10:{ch="OCT";break;}case 11:{ch="NOV";break;}case 12:{ch="DEC";break;}}cout<<ch<<". "<<y<<endl;cout<<"Mon Tue Wed Thu Fri Sat Sun"<<endl;  //从星期一开始cout<<"---------------------------"<<endl;for(int i=1900; i<y; i++) {     //注意题目中提示1900年1月1日是星期一if((i%4==0&&i%100!=0)||(i%400==0))sum=sum+366;elsesum=sum+365;}//加上这一年的月份,从1月开始直到要输出月的前一个月int r[12]={31,29,31,30,31,30,31,31,30,31,30,31};int br[12]={31,28,31,30,31,30,31,31,30,31,30,31};m=M-1;for(int i=0;i<m;i++){if((y%4==0&&y%100!=0)||(y%400==0)){sum+=r[i];}else{sum+=br[i];}}//printf("sum=%d\n",sum);int t;t=sum%7;    //计算上一个月最后在星期几if(t==1) {printf("%7d",1);for(int i=2; i<=x; i++) {if(i%7==0)printf("%3d",i);elseprintf("%4d",i);if(i%7==6)cout<<endl;}}if(t==0) {for(int i=1; i<=x; i++) {if(i%7==1)printf("%3d",i);elseprintf("%4d",i);if(i%7==0)cout<<endl;}}if(t==2) {printf("%11d%4d%4d%4d%4d",1,2,3,4,5);cout<<endl;for(int i=6; i<=x; i++) {if(i%7==6)printf("%3d",i);elseprintf("%4d",i);if(i%7==5)cout<<endl;}}if(t==3) {printf("%15d%4d%4d%4d",1,2,3,4);cout<<endl;for(int i=5; i<=x; i++) {if(i%7==5)printf("%3d",i);elseprintf("%4d",i);if(i%7==4)cout<<endl;}}if(t==4) {printf("%19d%4d%4d",1,2,3);cout<<endl;for(int i=4; i<=x; i++) {if(i%7==4)printf("%3d",i);elseprintf("%4d",i);if(i%7==3)cout<<endl;}}if(t==5) {printf("%23d%4d",1,2);cout<<endl;for(int i=3; i<=x; i++) {if(i%7==3)printf("%3d",i);elseprintf("%4d",i);if(i%7==2)cout<<endl;}}if(t==6) {printf("%27d",1);cout<<endl;for(int i=2; i<=x; i++) {if(i%7==2)printf("%3d",i);elseprintf("%4d",i);if(i%7==1)cout<<endl;}}return 0;
}

月历(从星期一开始)相关推荐

  1. c语言课程设计简易年月历计算,c语言课程设计《打印月历》.docx

    <打印月历>年月日 <打印月历> 年月日 <C语言课程设计> 课程设计报告 题 目 学 号 姓 名 年级专业 指导教师 完成日期 安徽师范大学物理与电子信息学院 . ...

  2. python3菜鸟教程中文-Python3 日期和时间

    Python3 日期和时间 Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能. Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间. 时间 ...

  3. Day05 - Python 常用模块

    1. 模块简介 模块就是一个保存了 Python 代码的文件.模块能定义函数,类和变量.模块里也能包含可执行的代码. 模块也是 Python 对象,具有随机的名字属性用来绑定或引用. 下例是个简单的模 ...

  4. Python基础教程(八):日期和时间、文件I/O、异常处理

    Python 日期和时间 Python程序能用很多方式处理日期和时间.转换日期格式是一个常见的例行琐事.Python有一个 time 和 calendar 模组可以帮忙. 什么是Tick? 时间间隔是 ...

  5. 零基础学Python(第十五章 日期时间datetime、time、Calendar)

    本套学习内容共计[22]个章节,每个章节都会有对应的从0-1的学习过程详细讲解,希望可以给更多的人提供帮助. 开发环境:[Win10] 开发工具:[Visual Studio 2019] 本章内容为: ...

  6. python数字转日期函数_【转】Python 日期和时间

    本文转自:http://www.runoob.com/python/python-date-time.html Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能. Pytho ...

  7. python3正式发布时间_Python3 日期和时间

    Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能. Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间. 时间间隔是以秒为单位的浮点小数. ...

  8. python 系统时间24小时制_Python 日期和时间

    获取当前时间 从返回浮点数的时间戳方式向时间元组转换,只要将浮点数传递给如localtime之类的函数. 1 #!/usr/bin/python3 2 3 importtime4 5 localtim ...

  9. Python基础----日期时间

    文章目录 1.time 模块 1.1.time模块中时间表现的三种主要格式 1.2.format time结构化表示 1.3.time.clock( ) 1.4.time.sleep() 函数推迟调用 ...

  10. Python中的日期和时间

    感觉C语言作为一门编程的入门语言还是很好的,相比较之下,Python为代表的一些语言,适合很多非计算机专业的编程入门学习. Python 日期和时间 Python 程序能用很多方式处理日期和时间,转换 ...

最新文章

  1. 总点第一个视频产生选择偏差?Youtube用“浅塔”来纠正
  2. matlab用于系统框图建模的函数,MATLAB产品家族中文
  3. linux program HEAP tracker
  4. HDU - 1255 覆盖的面积(线段树求矩形面积交 扫描线+离散化)
  5. Redis 数据类型之(底层解析)
  6. c/c++宏函数的定义与使用(宏定义函数)(macro definition)
  7. 双绞线传输距离_光纤传输有哪些特点 光纤传输原理介绍【图文】
  8. Zabbix学习之路(五)之MySQL监控
  9. 一个数据包的旅程_如何学习数据科学并开始您的惊人旅程
  10. android服务器连接失败,Android Studio服务器连接失败
  11. python中的append()有什么功能_在python中append()函数能做什么
  12. matlab画一个点电荷电场线,matlab画点电荷电场线
  13. UZCMS镜像站群-v5.4旗舰版
  14. 2021年中国外卖行业发展现状、市场竞争格局及未来发展趋势分析:美团外卖市场份额持续提升[图]
  15. 【Python】QQ大家来找茬辅助
  16. android维持登录状态
  17. 法线贴图的实现【OpenGL】
  18. 1090 Highest Price in Supply Chain(天上人间,潇潇共雨。曼珠红遍,流水忘川。)
  19. 特别好用的录音转文字工具
  20. 在棋盘上放米粒php,棋盘上的米粒(Python)

热门文章

  1. 关于加入@RequestBody后请求报错:Required request body is missing:
  2. JavaScript 插件
  3. 自学软件测试,第一份外包工作8K,到现在大厂月薪30K*16薪
  4. AVFoundation开发秘籍笔记:第12章 动图层内容
  5. wpspbc按钮是什么意思_路由器wps开关有什么用
  6. ipad iphone开发_如何在iPhone或iPad上取消应用订阅
  7. 手把手教你在Vivado创建一个RAM的IP核并使用ILA工具验证
  8. 解决报错:Cause: java.sql.SQLSyntaxErrorException: Table ‘myactiviti.act_ge_property‘ doesn‘t exist
  9. wps如何调整字符宽度_WPS文字怎样调整文字宽度让不同字数文字同宽?
  10. MAC下配置芯片为CH340T的USB转串口接口的注意事项