📄 打印年历.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 + -