📄 +
字号:
/*8.用户任意输入一个年份以及该年的1月1日是星期几,而后再输入该年的任意一个月份,
由程序负责在屏幕上按照你所设计的格式显示出这一个月的月历。
思考:利用元年元月元日(即1年1月1日)是星期一的已知事实,可对程序进行改造,
让用户仅输入任意一个年份和一个月份,则程序就应按格式显示出该年那一个月的月历。*/
#include <iostream.h>
#include <stdlib.h>
int IsLeapYear(int);
void main()
{
int i;
int day,year;
int m;
int n;
int month_day[]={31,28,31,30,31,30,31,31,30,31,30,31};
while(true)
{
cout<<endl;
cout<<"Please enter the year: ";
cin>>year;
cout<<"Please enter the month:";
cin>>m;
long int Year_days = 0;
int Year_Start = 1;
int Per_Year_Days;
while(Year_Start<year)
{
if(IsLeapYear(Year_Start))
Per_Year_Days=366;
else
Per_Year_Days=365;
Year_days=Year_days+Per_Year_Days;
Year_Start++;
}
for(int j=1;j<m;j++){
switch(j)
{
case 1:
Year_days=Year_days+month_day[0];
break;
case 2:
if(IsLeapYear(year))
Year_days=Year_days+29;
else
Year_days=Year_days+month_day[1];
break;
case 3:
Year_days=Year_days+month_day[2];
break;
case 4:
Year_days=Year_days+month_day[3];
break;
case 5:
Year_days=Year_days+month_day[4];
break;
case 6:
Year_days=Year_days+month_day[5];
break;
case 7:
Year_days=Year_days+month_day[6];
break;
case 8:
Year_days=Year_days+month_day[7];
break;
case 9:
Year_days=Year_days+month_day[8];
break;
case 10:
Year_days=Year_days+month_day[9];
break;
case 11:
Year_days=Year_days+month_day[10];
break;
}
}
i =Year_days%7;
cout<<endl;
cout<<"Mon Tue Wed Thu Fri Sat Sun"<<endl;
if(i!=0)
for(n=0;n<i;n++)
cout<<" ";
day=1;
if(IsLeapYear(year)&&m==2)
while(day<=29)
{
if(day>1)
if(Year_days%7==0)
cout<<endl;
if(day>=10)
cout<<day<<" ";
else
cout<<day<<" ";
Year_days++;
day++;
}
else
while(day<=month_day[m-1])
{
if(day>1)
if(Year_days%7==0)
cout<<endl;
if(day>=10)
cout<<day<<" ";
else
cout<<day<<" ";
Year_days++;
day++;
}
cout<<endl;
}
}
int IsLeapYear(int year)
{
if ((year%4==0)&&(year%100!=0)||(year%400==0))
return 1;
else
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -