日期问题、建立具有如下功能的类Date:
#include<iostream>#include<iomanip>
#include"string.h"
#include<time.h>
using namespace std;
class Date
{
public:
Date(int ,int,int);
Date (char*s,int d,int y)
{strcpy(str,s);
day=d;
year=y;}
void set(int y,int d,int m);
bool NexDay();
bool isLeapYear();
void display1();
void display2();
void display3();
private:
int max[12];
int max_day;
char str[5];
int month;
int day;
int year;
};
Date::Date(int m,int d,int y):month(m),day(d),year(y)
{}
void Date::set(int y,int m,int d)
{
year=y;
month=m;
day=d;
}
bool Date::isLeapYear()
{
return (year%4==0 && year%100!=0)||(year%400==0);
}
bool Date::NexDay()
{
++day;
int max_day;
int max[12]={31,28,31,30,31,30,31,31,30,31,30,31};
if(isLeapYear())
{ ++max[1];
}
max_day = max[month];
if(day>max_day)
{
day=1;
++month;
if(month>12)
{
++year;
month=1;
}
void Date::display3()
{ cout<<setfill('0');
cout<<setw(4)<<year<<'/'<<setw(2)<<month<<'/'<<setw(2)<<day<<'\n';
cout<<setfill(' ');}
void Date::display1()
{cout<<month<<"/"<<day<<"/"<<year<<endl;
cout<<month<<" "<<day<<" "<<year<<endl;}
void Date::display2()
{cout<<str<<","<<day<<","<<year<<endl;}
int main()
{
time_t timeval;
timeval=time(NULL);
cout<<"Time as local time is "<<ctime(&timeval)<<endl;
Date d;
cout<<"请输入一个四位的阿拉伯数字表示的年,一个两位阿拉伯数字表示的月,一个两位的阿拉伯数字表示的日,并用回车分别输入"<<'\n';
int s_y,s_m,s_d;
cin>>setw(4)>>s_y>>setw(2)>>s_m>>setw(2)>>s_d;
d.set(s_y,s_m,s_d);
d.display1();
d.display2();
d.NexDay();
d.display3();
system("pause");
return 0;
}
我的程序没有实现“构造函数用头文件time.h中的标准库函数读取系统时间,把读取的时间赋值给Date的数据成员”这一要求,而且存在错误,实在不会改了,求助!!