C++实现的一个打印日历程序

说明:总共有三个文件

1、month.h为定义函数的头文件

2、month.cpp为函数的实现代码

3、mainprog.cpp为主函数的实现代码

month.h

void printMonth(int year,int month);

void printMonthTitle(int year,int month);

void printMonthBody(int year,int month);

int getStartDay(int year,int month);

int getTotalNumberOfDays(int year,int month);

int getNumberOfDaysInMonth(int year,int month);

bool isLeapYear(int year);

month.cpp

#include

#include

#include "month.h"

using namespace std;

//打印日历头部

void printMonthTitle(int year,int month){

char chMonth[12][7] = {"一月","二月","三月","四月","五月","六月","七月",

"八月","九月","十月","十一月","十二月"};

cout<

cout<

cout<

cout<

cout<

}

void printMonthBody(int year,int month){

int startDay = getStartDay(year,month);

int numberOfDaysInMonth = getNumberOfDaysInMonth(year,month);

int i = 0;

for(i=0;i

cout<

}

for(i=1;i<=numberOfDaysInMonth;i++){

cout<

if((i+startDay)%7==0){

cout<

}

}

cout<

cout<

}

int getStartDay(int year,int month){

int startDay1800 = 3;

int totalNumberOfDays = getTotalNumberOfDays(year,month);

return (totalNumberOfDays+startDay1800)%7;

}

int getTotalNumberOfDays(int year,int month){

int total = 0;

for(int i=1800;i

if(isLeapYear(i)){

total=total+366;

}else{

total=total+365;

}

}

for(int i=1;i

total=total+getNumberOfDaysInMonth(year,i);

}

return total;

}

int getNumberOfDaysInMonth(int year,int month){

if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){

return 31;

}

if(month==4||month==6||month==9||month==11){

return 30;

}

if(month==2){

return isLeapYear(year)?29:28;

}

return 0;

}

bool isLeapYear(int year){

return year%400==0||(year%4==0&&year%100!=0);

}

mainprog.cpp

#include

#include

#include "month.cpp"

#include "month.h"

using namespace std;

void main(){

cout<

int year;

cin>>year;

cout<

int month;

cin>>month;

printMonth(year,month);

}

void printMonth(int year,int month){

printMonthTitle(year,month);

printMonthBody(year,month);

}

结果显示:

原文:https://www.cnblogs.com/hglibin/p/10041606.html

打印日历程序php,C++实现的一个打印日历程序相关推荐

  1. 关于程序员的那些事——一个五年程序员的总结

    一晃,做了五年多的程序员了,感觉自己应该是程序员大军中比较典型的一个,班科生毕业,直接加入了软件开发的行列,先是小公司,然后大公司,走了一条典型的程序员的路线. 虽然我不是大牛,但是感觉在我这样普通程 ...

  2. 微信小程序+PHP 从零写一个微信小程序

    微信小程序是越来越火,参与其中的开发者也越来越多,但是很多朋友都是只懂小程序前端开发,或者是只懂 PHP 开发,本 Chat 就是想让这部分人能够自己一个人把前后端串起来,做一个专属自己的微信小程序. ...

  3. IDEA如何执行一个包内的程序时不报另一个包内程序的错误 IDEA如何只编译运行一个包内的程序

    有时候想编译运行一个包内的程序时会报错同一个项目下的另一个包内程序的错误,如何跳过有错误不想执行的包内的程序,只执行想执行包内的程序呢 首先右键想跳过执行的包 选择 Mark Directory as ...

  4. 怎么用java做日历_如何用Java制作一个简易日历

    简易日历制作 记录一下Java实现的一个日历小程序,效果图如下: 实现以上的效果,我们需要用到两个类:SimpleDateFormat和Calendar. 首先看看这两个类的用法: 类 SimpleD ...

  5. java 制作简易日历_如何用Java制作一个简易日历

    简易日历制作 记录一下Java实现的一个日历小程序,效果图如下: 实现以上的效果,我们需要用到两个类:SimpleDateFormat和Calendar. 首先看看这两个类的用法: 类 SimpleD ...

  6. 用java编写日历_如何用Java制作一个简易日历

    简易日历制作 记录一下Java实现的一个日历小程序,效果图如下: 实现以上的效果,我们需要用到两个类:SimpleDateFormat和Calendar. 首先看看这两个类的用法: 类 SimpleD ...

  7. python国际象棋ai程序_用Python编写一个国际象棋AI程序

    最近我用Python做了一个国际象棋程序并把代码发布在Github上了.这个代码不到1000行,大概20%用来实现AI.在这篇文章中我会介绍这个AI如何工作,每一个部分做什么,它为什么能那样工作起来. ...

  8. c语言创建空顺序表的程序,用C语言编写一个完整的程序,实现顺序表的建立、插入、删除、输出等基本运算。...

    #include #include #define maxsize 30 typedef int datatype; typedef struct seqlist{ datatype data[max ...

  9. python国际象棋ai程序_用 Python 编写一个国际象棋 AI 程序

    最近我用Python做了一个国际象棋程序并把代码发布在Github上了.这个代码不到1000行,大概20%用来实现AI.在这篇文章中我会介绍这个AI如何工作,每一个部分做什么,它为什么能那样工作起来. ...

  10. 小程序video至于底部_一个18岁程序员的自学成长旅程 | 掘金年度征文

    大家好,我是Q1,00后,上星期(12.17)才满的18岁,但年龄并不能证明什么, 2019已经接近尾声了,这次主要想分享下我的编程旅途,还有学习方法以及收获, 感谢平台给了我这次机会. 起点 起点从 ...

最新文章

  1. windows 同时安装 python2 python3
  2. 深度学习模型之各种caffe版本(Linux和windows)的网址和配置
  3. webpack 配置react-router 服务,及react-router浅析
  4. 用python爬取网页数据并存入数据库中源代码_Python爬取51cto数据并存入MySQL方法详解...
  5. .NET 差点不叫“.NET”?微软大牛爆料技术往事
  6. 当当网头部和尾部——源码
  7. 使用HeartBeat实现高可用HA的配置过程详解
  8. 解决终端SSH连接服务器一段时间不操作之后卡死的问题
  9. 如何成为一名出色的演说者
  10. zmq -- mailbox -- session之间关系
  11. flt文件matlab,FLT文件扩展名 - 什么是.flt以及如何打开? - ReviverSoft
  12. HEVC帧内预测学习(一)CTU、CU、PU、TU单元划分的理解
  13. 天天向上的力量(c语言)
  14. 这是我见过的最垃圾的代码,没有之一
  15. string类函数和牛客网剑指offer刷题记录
  16. 虚拟机MAC地址冲突,如何生成新的mac地址
  17. windows找不到文件gpedit.msc怎么办?
  18. 2020-08-17:为什么HashMap中数组的容量为2的次幂?
  19. 如何让女性乳房更具吸引力?整形医生可以用眼动追踪技术大显神通吗?
  20. 人民币成功“入篮”SDR,这意味着什么?

热门文章

  1. LDC1314 学习资料
  2. 最新蓝屏代码0x0000006b完美解决方案,附文件
  3. 办公用品管理系统服务器版,求索办公用品管理系统 2019
  4. Linux内核调试方法
  5. 滚动截屏苹果_苹果超好用的长截图软件—滚动截屏免费分享!
  6. UVa OJ 10361 自动作诗机
  7. 室外3D建图定位(0)Loam-3D激光定位算法的一些思考
  8. Mathematica 矩阵的LU分解
  9. Mat  iplimage
  10. LaTeX论文排版参考文献格式转换