输入要查看的年份(要求为公元元年以后),就可以输出这一年每个月份的天数。

例如输入:2018

本程序为实现万年历的功能,请输入要查找的年份:
2018
一月
星期一  星期二  星期三  星期四  星期五  星期六  星期日
1       2       3       4       5       6       7
8       9       10      11      12      13      14
15      16      17      18      19      20      21
22      23      24      25      26      27      28
29      30      31
二月
星期一  星期二  星期三  星期四  星期五  星期六  星期日
                        1       2       3       4
5       6       7       8       9       10      11
12      13      14      15      16      17      18
19      20      21      22      23      24      25
26      27      28
三月
星期一  星期二  星期三  星期四  星期五  星期六  星期日
                        1       2       3       4
5       6       7       8       9       10      11
12      13      14      15      16      17      18
19      20      21      22      23      24      25
26      27      28      29      30      31
四月
星期一  星期二  星期三  星期四  星期五  星期六  星期日
                                                1
2       3       4       5       6       7       8
9       10      11      12      13      14      15
16      17      18      19      20      21      22
23      24      25      26      27      28      29
30
五月
星期一  星期二  星期三  星期四  星期五  星期六  星期日
        1       2       3       4       5       6
7       8       9       10      11      12      13
14      15      16      17      18      19      20
21      22      23      24      25      26      27
28      29      30      31
六月
星期一  星期二  星期三  星期四  星期五  星期六  星期日
                                1       2       3
4       5       6       7       8       9       10
11      12      13      14      15      16      17
18      19      20      21      22      23      24
25      26      27      28      29      30
七月
星期一  星期二  星期三  星期四  星期五  星期六  星期日
                                                1
2       3       4       5       6       7       8
9       10      11      12      13      14      15
16      17      18      19      20      21      22
23      24      25      26      27      28      29
30      31
八月
星期一  星期二  星期三  星期四  星期五  星期六  星期日
                1       2       3       4       5
6       7       8       9       10      11      12
13      14      15      16      17      18      19
20      21      22      23      24      25      26
27      28      29      30      31
九月
星期一  星期二  星期三  星期四  星期五  星期六  星期日
                                        1       2
3       4       5       6       7       8       9
10      11      12      13      14      15      16
17      18      19      20      21      22      23
24      25      26      27      28      29      30
十月
星期一  星期二  星期三  星期四  星期五  星期六  星期日
1       2       3       4       5       6       7
8       9       10      11      12      13      14
15      16      17      18      19      20      21
22      23      24      25      26      27      28
29      30      31
十一月
星期一  星期二  星期三  星期四  星期五  星期六  星期日
                        1       2       3       4
5       6       7       8       9       10      11
12      13      14      15      16      17      18
19      20      21      22      23      24      25
26      27      28      29      30
十二月
星期一  星期二  星期三  星期四  星期五  星期六  星期日
                                        1       2
3       4       5       6       7       8       9
10      11      12      13      14      15      16
17      18      19      20      21      22      23
24      25      26      27      28      29      30
31
Process returned 0 (0x0)   execution time : 4.786 s
Press any key to continue.

代码如下:

#include <iostream>
#include <string>
#include <vector>
using namespace std;
int Week(int day)
{//这一年 1 月 1 日是星期几int week = (day % 7) +1;cout << "Monday\tTuesday\tWednesdayThursdayFriday\tSaturdaySunday" << endl;for(int i = 0; i < week -1; i++){cout << "\t";}//打印第一天前面的空格
}
int main()
{cout << "please input the year" << endl;int ye;cin >> ye;   //要查看的年份int year = ye - 1;//从公元元年 1 月 1 日到这一年 1 月 1 日一共的天数int day = ((year / 4) - (year / 100) + (year / 400)) * 366 + (year - ((year / 4) - (year / 100) + (year / 400))) * 365;int month1[31] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31};int month2b[28] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28};int month2a[29] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29};int month4[30] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30};int Jan = sizeof(month1) / sizeof(0);int Feb;int Apr = sizeof(month4) / sizeof(0);//一月cout << "January" << endl;Week(day);for(int i = 0; i < sizeof(month1) / sizeof(0); i++){cout << month1[i];if(((day + month1[i]) % 7) == 0)cout << "\n";elsecout << "\t";}//二月int day1 = day + Jan;   //二月之前的天数if((day1 % 7) != 0)cout << "\n";cout << "February" << endl;Week(day1);if((ye % 4 == 0 && ye % 100 != 0) || ye % 400 == 0){for(int i = 0; i < sizeof(month2a) / sizeof(0); i++){cout << month2a[i];if(((day1 + month2a[i]) % 7) == 0)cout << "\n";elsecout << "\t";}Feb = sizeof(month2a) / sizeof(0);}else{for(int i = 0; i < sizeof(month2b) / sizeof(0); i++){cout << month2b[i];if(((day + Jan + month2b[i]) % 7) == 0)cout << "\n";elsecout << "\t";}Feb = sizeof(month2b) / sizeof(0);}//三月int day2 = day + Jan + Feb;if((day2 % 7) != 0)cout << "\n";cout << "March" << endl;Week(day2);for(int i = 0; i < sizeof(month1) / sizeof(0); i++){cout << month1[i];if(((day2 + month1[i]) % 7) == 0)cout << "\n";elsecout << "\t";}//四月int day3 = day + Jan * 2 + Feb;if((day3 % 7) != 0)cout << "\n";cout << "April" << endl;Week(day3);for(int i = 0; i < sizeof(month4) / sizeof(0); i++){cout << month1[i];if(((day3 + month1[i]) % 7) == 0)cout << "\n";elsecout << "\t";}//五月int day4 = day + Jan * 2 + Feb + Apr;if((day4 % 7) != 0)cout << "\n";cout << "May" << endl;Week(day4);for(int i = 0; i < sizeof(month1) / sizeof(0); i++){cout << month1[i];if(((day4 + month1[i]) % 7) == 0)cout << "\n";elsecout << "\t";}//六月int day5 = day + Jan * 3 + Feb + Apr;if((day5 % 7) != 0)cout << "\n";cout << "June" << endl;Week(day5);for(int i = 0; i < sizeof(month4) / sizeof(0); i++){cout << month1[i];if(((day5 + month1[i]) % 7) == 0)cout << "\n";elsecout << "\t";}//七月int day6 = day + Jan * 3 + Feb + Apr * 2;if((day6 % 7) != 0)cout << "\n";cout << "July" << endl;Week(day6);for(int i = 0; i < sizeof(month1) / sizeof(0); i++){cout << month1[i];if(((day6 + month1[i]) % 7) == 0)cout << "\n";elsecout << "\t";}//八月int day7 = day + Jan * 4 + Feb + Apr * 2;if((day7 % 7) != 0)cout << "\n";cout << "August" << endl;Week(day7);for(int i = 0; i < sizeof(month1) / sizeof(0); i++){cout << month1[i];if(((day7 + month1[i]) % 7) == 0)cout << "\n";elsecout << "\t";}//九月int day8 = day + Jan * 5 + Feb + Apr * 2;if((day8 % 7) != 0)cout << "\n";cout << "September" << endl;Week(day8);for(int i = 0; i < sizeof(month4) / sizeof(0); i++){cout << month1[i];if(((day8 + month1[i]) % 7) == 0)cout << "\n";elsecout << "\t";}//十月int day9 = day + Jan * 5 + Feb + Apr * 3;if((day9 % 7) != 0)cout << "\n";cout << "October" << endl;Week(day9);for(int i = 0; i < sizeof(month1) / sizeof(0); i++){cout << month1[i];if(((day9 + month1[i]) % 7) == 0)cout << "\n";elsecout << "\t";}//十一月int day10 = day + Jan * 6 + Feb + Apr * 3;if((day10 % 7) != 0)cout << "\n";cout << "November" << endl;Week(day10);for(int i = 0; i < sizeof(month4) / sizeof(0); i++){cout << month1[i];if(((day10 + month1[i]) % 7) == 0)cout << "\n";elsecout << "\t";}//十二月int day11 = day + Jan * 6 + Feb + Apr * 4;if((day11 % 7) != 0)cout << "\n";cout << "December" << endl;Week(day11);for(int i = 0; i < sizeof(month1) / sizeof(0); i++){cout << month1[i];if(((day11 + month1[i]) % 7) == 0)cout << "\n";elsecout << "\t";}
}

使用 C++ 编写万年历程序相关推荐

  1. python编写万年历程序

    好的,下面是编写万年历程序的一些建议. 首先,你可以使用 Python 的 calendar 模块来获取每个月的日历信息.这个模块提供了很多有用的函数,例如 isleap 函数可以用来判断某一年是否是 ...

  2. c语言万年历代码作业,用c语言编写万年历程序

    用c语言编写万年历程序 <C 程序设计>课程设计报告 2011-2012学年第二学期 设计题目:万年历的设计 指导教师: 李素若 完成时间:2012 年 6月 1日至 2011年 6月 2 ...

  3. c语言编写万年历程序显示时间,C语言格式化输出日历(万年历)

    C语言控制台输出日历.先输入年份,然后输入每行显示的月份个数. 如图: 代码如下: #include int main(void) { int a, i, j, n, k, t, w, x, y, z ...

  4. C++编写万年历,公元后日历程序,考虑了1582年前后以及该年的特殊情况。

    目录 一,万年历的基本要求 前言:万年历的创建思路 1.公元天数与日期 1.日期输入问题 2.闰年与平年的数目 3.日历的输出问题 1.日数转化为星期 2.日历月份开头 二,万年历正确性的额外补丁 1 ...

  5. 用C语言编写万年历6,C语言编写万年历

    <C语言编写万年历>由会员分享,可在线阅读,更多相关<C语言编写万年历(8页珍藏版)>请在人人文库网上搜索. 1.C语言编写万年历 [要求]:1 程序运行后,首先在屏幕上显示主 ...

  6. c语言编写万年历课程设计,用C语言编写万年历 C课程设计.pdf

    用C语言编写万年历 C课程设计 用用 C++语言编写万年历语言编写万年历 用用 语言编写万年历语言编写万年历 学生姓名:学生姓名: 指导老师:指导老师: 学生姓名学生姓名:: 指导老师指导老师:: 摘 ...

  7. linux下 为自己编写的程序 添加tab自动补全 功能

    linux下 为自己编写的程序 添加tab自动补全功能 入门 complete 在我的tmp下随便写了一个a.sh, 为他补全 edit /etc/bash_completion.d/foo _foo ...

  8. 编写运行最简单的java程序——使用记事本编写java程序

    编写运行最简单的java程序--使用记事本编写java程序 第一个java程序--使用记事本编辑 经过上篇文章的java环境搭建成功的小伙伴们可以在自己的计算机上编写属于自己的java程序了yo~ 还 ...

  9. linux编写多进程程序实验,实验7 编写多进程程序

    实验七编写多进程程序 学生姓名:李亚军学号:6100412196 专业班级:卓越计科121班 1.实验目的 通过编写多进程程序,使读者熟练掌握fork().exec().wait()和waitpid( ...

最新文章

  1. 特征选择的通俗讲解!
  2. 高德地图只显示一个省_浅谈当下各种导航软件:高德地图、百度地图、腾讯地图...
  3. struts+swfupload实现批量图片上传(上):swfupload
  4. 【Python成长之路】从零做网站开发 -- 下拉选择项的实现
  5. too many connections的一个实践
  6. 吴恩达机器学习ex5:正则化线性回归和方差与偏差
  7. 代码测试意味着完全消灭了 Bug?
  8. c语言小球触地问题,OC语言中关于触摸事件和手势
  9. 数组操作--微信小程序学习教程 1
  10. 18位身份证正则及校验码计算
  11. gmsk的matlab仿真,MSKGMSK 导师传给我的关于MSK和GMSK的一些相关MATLAB仿真源码 - 下载 - 搜珍网...
  12. 微信永久封禁:从入门到精通
  13. OceanBase数据库 OBCA考试认证通过感言
  14. 基于JavaWeb的学生考勤系统
  15. css解决图片底部留白问题
  16. radmi4a Android,红米4A(Redmi 4A 全网通)一键ROOT教程,看教程ROOT
  17. nvme固态硬盘开机慢_6个固态硬盘优化设置技巧 让你的SSD速度飞起来 (全文)
  18. 浏览器f12, ::before ::after是什么意思?
  19. 《一本书读懂24种互联网思维》用户思维1
  20. 生活污水磷超标,磷化工行业磷超标,各种磷超标的深度治理

热门文章

  1. STM32F103时钟系统讲解(精)
  2. 方舟建立服务器显示cmd,家庭电脑建方舟服务器
  3. Office 365禁用所有宏,且不通知
  4. 轴对中工具app android,对称轴软件绘画图案app下载安装-对称轴软件绘画appV1.0手机版下载_飞翔下载...
  5. LeetCode 14.最长公共前缀(字符串)
  6. SMARTBI 电子表格——分片报表
  7. 学会提问——批判性思维指南
  8. r语言中which的使用_R语言绘图 | 使用pheatmap快速绘制热图
  9. 圣诞节,1inch狂撒3亿美金红包,币圈大佬在线炫富,我酸了...
  10. 计算机怎么打开隐藏的项目,展示win10系统怎么打开隐藏文件夹