主题:请高手些帮我解决一个C++问题
输出一个万年历 我不知道错哪儿了 帮我改一下吧
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
class date
{
public:
int year;
int month;
int day;
}date;
string monthname(int)
{
switch(date.month)
{
case 1:return "Jan";break;
case 2:return "Feb";break;
case 3:return "Mar";break;
case 4:return "Foy";break;
case 5:return "May";break;
case 6:return "Jul";break;
case 7:return "Jun";break;
case 8:return "Aug";break;
case 9:return "Sep";break;
case 10:return "Oct";break;
case 11:return "Nov";break;
case 12:return "Dec";break;
default:return "error";
}
}
int days(int,int,int)
{
int i,day_sum;
int day_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
day_sum=0;
for(i=1;i<date.month;i++)
day_sum+=day_tab[i];
day_sum+=date.day;
if((date.year%4==0&&date.year%100!=0||date.year%400==0)&&date.month>=3)
day_sum+=1;
return(day_sum);
}
void day_act(int,int)
{
int w[12],i,k,t;
int day_t[12]={31,28,31,30,31,30,31,31,30,31,30,31};
t=days(date.year,date.month,date.day);
for(i=0;i<date.month;i++)
w[i]=(date.year-1+(date.year-1)/4-(date.year-1)/100+(date.year-1)/400+t)%7;
cout<<" "<<monthname(date.month)<<" "<<date.year<<endl;
cout<<"Su Mo Tu We Th Fr Sa"<<endl;
for( i=1;i<=day_t[i];i++)
cout<<setw(5)<<i;
for(i=0;i<12;i++)
{
if(w[i]==7) w[i]=0;
cout<<setw(5)<<" ";
}
for ( i=1;i<=7-w[i];i++)
{
cout<<" ";
}
cout<<endl;
int j=i-1;
for(k=1;k<=7-j;k++)
{
cout<<" ";
if(k%7==0)cout<<endl;
}
}
void printcalendar(int)
{
for(int i=1;i<=12;i++)
{
day_act(i,date.year);
cout<<endl;
}
}
int main()
{
cout<<"input year from 1607 to 2007:"<<endl;
cin>>date.year;
printcalendar(date.year);
system("pause");
return 0;
}
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
class date
{
public:
int year;
int month;
int day;
}date;
string monthname(int)
{
switch(date.month)
{
case 1:return "Jan";break;
case 2:return "Feb";break;
case 3:return "Mar";break;
case 4:return "Foy";break;
case 5:return "May";break;
case 6:return "Jul";break;
case 7:return "Jun";break;
case 8:return "Aug";break;
case 9:return "Sep";break;
case 10:return "Oct";break;
case 11:return "Nov";break;
case 12:return "Dec";break;
default:return "error";
}
}
int days(int,int,int)
{
int i,day_sum;
int day_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
day_sum=0;
for(i=1;i<date.month;i++)
day_sum+=day_tab[i];
day_sum+=date.day;
if((date.year%4==0&&date.year%100!=0||date.year%400==0)&&date.month>=3)
day_sum+=1;
return(day_sum);
}
void day_act(int,int)
{
int w[12],i,k,t;
int day_t[12]={31,28,31,30,31,30,31,31,30,31,30,31};
t=days(date.year,date.month,date.day);
for(i=0;i<date.month;i++)
w[i]=(date.year-1+(date.year-1)/4-(date.year-1)/100+(date.year-1)/400+t)%7;
cout<<" "<<monthname(date.month)<<" "<<date.year<<endl;
cout<<"Su Mo Tu We Th Fr Sa"<<endl;
for( i=1;i<=day_t[i];i++)
cout<<setw(5)<<i;
for(i=0;i<12;i++)
{
if(w[i]==7) w[i]=0;
cout<<setw(5)<<" ";
}
for ( i=1;i<=7-w[i];i++)
{
cout<<" ";
}
cout<<endl;
int j=i-1;
for(k=1;k<=7-j;k++)
{
cout<<" ";
if(k%7==0)cout<<endl;
}
}
void printcalendar(int)
{
for(int i=1;i<=12;i++)
{
day_act(i,date.year);
cout<<endl;
}
}
int main()
{
cout<<"input year from 1607 to 2007:"<<endl;
cin>>date.year;
printcalendar(date.year);
system("pause");
return 0;
}