⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 打印年历.cpp

📁 一个打印年历的程序
💻 CPP
字号:
// 打印年历.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include<iostream.h>
#include<iomanip.h>
#include<fstream.h>
//....................................
int FirstDayOfYear(int y);
int DaysOfMonth(int m);
void PrintMonth(int m);
void PrintHead(int m);
bool IsLeapYear(int y);
//.....................................
int weekDay;
int year;
//....................................
void main()
{
	cerr<<"请输入您想要的年份:\n";
	cin>>year;
	if(year<1)
	{
		cerr<<"年份不能小于1。\n";
		return;

	}

	weekDay=FirstDayOfYear(year);//一年的第一天星期几

	//打印年历标题
	cout<<"\n\n\n\n\n                    "<<year<<"  年\n";
	cout<<"\n =============================================";

	//打印每个月
	for(int i=1;i<=12;i++)
		PrintMonth(i);
}
//.........................................................
void PrintMonth(int m)
{
	PrintHead(m);
	int days=DaysOfMonth(m);
	for(int i=1;i<=days;i++)
	{
		cout<<setw(5)<<i;
		weekDay=(weekDay+1)%7;
		if(weekDay==0)
		{
			cout<<endl;
			cout<<"       ";
		}
	}
}
//..............................................................
void PrintHead(int m)
{
	cout<<"\n\n"<<setw(6)<<m<<"月   日  一   二   三   四   五   六\n";
	cout<<"             ";
	for(int i=0;i<weekDay;i++)
	cout<<"     ";
}
//.............................................................
int DaysOfMonth(int m)
{
	switch(m)
	{
	case 1:
	case 3:
	case 5:
	case 7:
	case 8:
	case 10:
	case 12:return 31;
	case 4:
	case 6:
	case 9:
	case 11:return 30;
	case 2: if(IsLeapYear(year))
				return 29;
		else
			return 28;
	}
	return 0;
}
//..................................................................
bool IsLeapYear(int y)
{
	return((y%4==0&&y%100!=0)||y%4==0);
}
//................................................................
int FirstDayOfYear(int y)
{
	long n;
	n=y*365;
	for(int i=1;i<y;i++)
		n+=IsLeapYear(i);
	return n%=7;
}








⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -