您的位置:首页 > 编程语言 > C语言/C++

C语言 - 万年历

2019-06-12 23:43 549 查看
[code]#include<iostream>
#include<iomanip>
using namespace std;
int leapyear(int year);                         //判断该年是否为闰年
int theday(int year,int month);                 //判断该月天数
int whatdate(int year,int month);               //判断该月第一天是星期几
int typeday(int year,int month);                //打印该月日历
int main()
{
int year;
cout<<"please type the year you want search:";
cin>>year;
for(int month=1;month<=12;month++){
cout<<"\t"<<year<<"年"<<month<<"月月历"<<endl;
cout<<"\t"<<"日"<<"\t"<<"一"<<"\t"<<"二"<<"\t"<<"三"<<"\t"<<"四"<<"\t"<<"五"<<"\t"<<"六"<<endl;
typeday(year,month);
cout<<endl;
}
system("pause");
return 0;
}
int leapyear(int year)
{
int flag1=0;
if(year%400==0||year%100!=0&&year%4==0)
flag1=1;
else
flag1=0;
return flag1;
}
int theday(int year,int month)
{
int days;
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: days=31;break;
case 4:
case 6:
case 9:
case 11: days=30;break;
case 2:
if(leapyear(year)) days=29;
else days=28;break;
default :cout<<"error"<<endl;break;
}
return days;
}
int whatdate(int year,int month)
{
int s=0;
for(int i=2000;i<year;i++)
{
if(leapyear(i))
s=s+366;
else s=s+365;
}
for(int j=1;j<month;j++)
s=s+theday(year,j);
return s%7;
}

int  typeday(int year,int month)
{
int n=0;
for(int g=1;g<=whatdate(year,month);g++)
cout<<"\t";
n=n-1;
if(n==1) cout<<"\t\t\t\t\t\t\t";
for(int k=1;k<=theday(year,month);k++)
{
cout<<k<<"\t";
if((n)%7==0)
cout<<endl<<"\t";n=n+1;
}
return 0;

}

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: