定义一个Time类,仅包含公有的数据成员包括 年,月,日。要求输入年、月、日,使程序能计算并输出该日在本年中是第几天,注意闰年的问题。
可以在这个框架上修改一下么
#include <iostream>
using namespace std;
int main()
{
int y, m, d, days, i;
int x[12]={31,0,31,30,31,30,31,31,30,31,30,31};
cout <<"year=?";
cin>>y;
cout <<"month=?";
cin>>m;
cout <<"day=?";
cin>>d;
if(y % 4 ==0 && y % 100 !=0 || y % 400 ==0) x[1]=29;
else x[1]=28;
days=0;
for(i=0;i<=m-2;i++)
{
days=days+x[i];
}
days=days+d;
cout<<y<<"年"<<m<<"月"<<d<<"日是这年的第"<<days<<"天"<<endl;
return 0;
}
然后题目要求“编写一个函数days实现上面的计算,由主函数将年,月,日传递给函数days,计算出该日在本年中是第几天,并将结果传回主函数输出。”
谢谢各位帮助了
代码如下:
#include <iostream>
using namespace std;
class Time
{
public:
Time(int y,int m,int d){year = y; month = m; day = d;}
int days();
public:
int year;
int month;
int day;
};
int Time::days()
{
if(month<1 || month > 12)
return -1;
else if (month == 1)
{
//cout<<y<<"年"<<m<<"月"<<d<<"日是这年的第"<<d<<"天"<<endl;
return day;
}else
{
int x[12]={31,0,31,30,31,30,31,31,30,31,30,31};
if(year % 4 ==0 && year % 100 !=0 || year % 400 ==0)
x[1]=29;
else
x[1]=28;
int daysout =0;
for(int i=0;i<=month-2;i++)
{
daysout = daysout + x[i];
}
daysout=daysout+day;
//cout<<year<<"年"<<m<<"月"<<d<<"日是这年的第"<<daysout<<"天"<<endl;
return daysout;
}
}
int main()
{
int y, m, d, daysout;
cout <<"year=?";
cin>>y;
cout <<"month=?";
cin>>m;
cout <<"day=?";
cin>>d;
Time t(y,m,d);
daysout = t.days();
cout<<y<<"年"<<m<<"月"<<d<<"日是这年的第"<<daysout<<"天"<<endl;
return 0;
}
#include <iostream>
using namespace std;
int days(int year,int m,int d)
{
if(m<1 || m > 12)
return -1;
int x[12]={31,0,31,30,31,30,31,31,30,31,30,31};
if(year % 4 ==0 && year % 100 !=0 || year % 400 ==0)
x[1]=29;
else
x[1]=28;
int daysout = d;
for(int i=0;i<=m-2;i++)
{
daysout += x[i];
}
return daysout;
}
}
int main()
{
int y, m, d, daysout;
cout <<"year=?";
cin>>y;
cout <<"month=?";
cin>>m;
cout <<"day=?";
cin>>d;
daysout = days(y,m,d);
cout<<y<<"年"<<m<<"月"<<d<<"日是这年的第"<<daysout<<"天"<<endl;
return 0;
}