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

📄 打印年历.cpp

📁 打印年历
💻 CPP
字号:
//-----------------------------
#include<iostream.h>
#include<iomanip.h>  //其文件中包含了setw()函数的原型 
#include<stdlib.h>
//-----------------------------
int FirstDayOfYear(int y);
int DaysOfMonth(int m);
void PrintMonth(int m);
void PrintHead(int m);
bool IsLeapYear(int y);
//------------------------------
int year,weekDay;
//------------------------------
main(){
//为了输出到屏幕上而不受重定向的影响,下面用cerr输出
cerr<<"请输出您想要打印的年份\n";
cin>>year;
if(year<1){
    cout<<"对不起,输入的年份不能小于公元1年:\n";
    return 0; 
}
 
//打印年历
cout<<"\n\n\n"<<year<<" 年\n";
cout<<"\n=================================================\n";

weekDay=FirstDayOfYear(year);
//打印每个月
for(int i=1;i<13;i++)
    PrintMonth(i);
cout<<"\n";
system("pause");
}

//--------------------------
void PrintMonth(int m)
{ 
PrintHead(m);                   
int days=DaysOfMonth(m);
for(int i=1;i<=days;i++){
    cout<<setw(2)<<i<<setw(3)<<" ";              //为三空格 
    weekDay=(weekDay+1)%7;
    if(weekDay==0){
        cout<<"\n";
        cout<<"\t";      
    }
}
}
//----------------------------
void PrintHead(int m)
{
cout<<"\n\n"<<setw(2)<<m<<"月    日   一   二   三   四   五   六\n\t"; //字与字间为三个空格 
if(weekDay!=7){
    for(int i=1;i<=weekDay;i++)  //表头和日期要严格对齐,\t所占域宽等于八个空格,一个数字域宽等于一个空格,一个汉字域宽等于两个空格 
        cout<<"     ";            //五个空格 
}
}

int DaysOfMonth(int m){
switch(m){
case 1:
return 31;
case 3:
return 31;
case 5:
return 31;
case 7:
return 31;
case 8:
return 31;
case 10:
return 31;
case 12:
return 31;
case 4: 
return 30;
case 6: 
return 30;
case 9: 
return 30;
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%400==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 + -