A Print Calendar Program Implemented in C++

C++ print calendar

Description: There are three files in total

1. month.h is the header file that defines the function

2. month.cpp is the implementation code of the function

3, mainprog.cpp implementation code of the main function

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<iostream>
#include<iomanip>
#include "month.h"
using namespace std;
// print the calendar header
void printMonthTitle(int year,int month){
	char chMonth[12][7] = {"January","February","March","April","May","June","July",
	"August","September","October","November","December"};
	cout<<endl;
	cout<<setw(12)<<year<<"年"<<"    ";
	cout<<chMonth[month-1]<<endl;
	cout<<"------------------------------"<<endl;
	cout<<"  Sun Mon Tue Wed Thu Fri Sat"<<endl;
}

void printMonthBody(int year,int month){
	int startDay = getStartDay(year,month);
	int numberOfDaysInMonth = getNumberOfDaysInMonth(year,month);
	int i = 0;
	for(i=0;i<startDay;i++){
		cout<<"    ";
	}
	for(i=1;i<=numberOfDaysInMonth;i++){
		cout<<setw(4)<<i;
		if((i+startDay)%7==0){
			cout<<endl;
		}
	}
	cout<<endl;
	cout<<"------------------------------"<<endl;
}

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<year;i++){
		if(isLeapYear(i)){
			all=all+366;
		}else{
			all=all+365;		
		}
	}
	for(int i=1;i<month;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<iostream>
#include<iomanip>
#include "month.cpp"
#include "month.h"
using namespace std;
void main(){
	cout<<"Please enter the year (such as 2018):";
	int year;
	cin>>year;
	cout<<"Please enter the month (1-12):";
	int month;
	cin>>month;
	printMonth(year,month);
}

void printMonth(int year,int month){
	printMonthTitle(year,month);
	printMonthBody(year,month);
}

 The results show that:

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324820766&siteId=291194637