给你个更强大的程序,只要你输入那年的年和月
就能得出一分月历,不过是C++编的。
你的程序要求能用下边的部分代码,自己选择,
再加以完善,就能实现了。
#include<iostream>
#include<iomanip>
using namespace std;
//---------------------------------------------------------
void main()
{
int year1=1,month,wkday11=1,daysfrom11=0,year;
//year . month --年 . 月;
//year1是计算的最初基数,也是能够查询到的最早年限;
//daysfrom11 -- 某年某月距离1月1日即元旦的天数,初值为0;
//功能实现靠daysfrom11累加而得;
int mthdays[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
//mthdays[i]表示月份为i的那一个月的天数(若闰年的话,2月分要再增加1天);
cout<<"请出入你所要查询的年份以及月份(例如2007 2):";
cin>>year>>month;//输入要查询的年份以及月份
int i,ans;
//----------------------------------------------------------
for(i=1;i<year;i++)
{
if(year==1)
break;
daysfrom11+=365;
if( (i%4==0)&&(i%100!=0)||(i%400==0) )
daysfrom11+=1; //从公元元年起到要查的年份的头一年总共有的天数(闰年加1);
}
//--------------------------------------------------------
for(i=1;i<month;i++)
daysfrom11+=mthdays[i];
if(month>2)
if( (year1%4==0)&&(year1%100!=0)||(year1%400==0) )
daysfrom11+=1; //从公元元年起到要查的年份以及月份总共有的天数((闰年2月加1));
ans=(wkday11+daysfrom11)%7; //ans用来决定日期是周几;
//-------------------------------------------------------------
cout<<year<<"."<<month<<"月历表:"<<endl;
cout<<" ............................."<<endl;
cout<<" Sun Mon Tue Wed Thu Fri Sat"<<endl;
cout<<" ............................."<<endl;
//----------------------------------------------------------
int wday=ans;
cout<<" "<<setw(4*(wday+1))<<1; //以4字节为单位表示输出
for(i=2;i<=mthdays[month];i++)
{
wday++;
if(wday%7==0)
{
cout<<endl;
cout<<" ";
wday=0;
}
cout<<setw(4)<<i; //以4字节为单位表示输出
}
cout<<endl;
cout<<" ............................."<<endl;
}//======================================================
温馨提示:答案为网友推荐,仅供参考