#include <iostream.h>
#include <stdlib.h>
//Global variable
int days[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};//days of month
char *Week[7] = {"Sunday","Monday","Tuesday","Wednesday","Thurday","Friday","Saturday"}; //Week
class Date{//class defination
public:
void SetDate(int,int,int);// initialization
int IsLeapyear(int ); //Leap year or not
int Week_day(int); //Week_day
void Show(); //days number
private:
int year,month,day;
};
void Date::SetDate(int y,int m,int d)
{
year = y;
month = m;
day = d;
if(year <= 0 || month <= 0 || day <= 0 || month > 12
|| day > days[month]) //Date validity check
{
cout<<"The Date is invalid!"<<endl;
exit(0);
}
}
int Date::IsLeapyear(int y)
{
return y % 4 == 0 && y % 100 != 0 || y % 400 == 0;
}
int Date::Week_day(int flag)
//flag 0:week 1:day_num;
{
long sum = 0;
int i;
if(flag == 0)
i = 1;
else
i = year;
for(;i < year;i++)
{
if(IsLeapyear(i))
sum += 366;
else
sum += 365;
}
for(int j = 1;j < month;j++)
sum += days[j];
if(month > 2 && IsLeapyear(year))
sum++;
sum += day;
if(flag == 0)
return sum % 7;
return sum;
};
void Date::Show()
{
cout<<"The Date is:"<<year<<"-"<<month<<"-"<<day<<endl;
cout<<"It's "<<*(Week+Week_day(0))<<endl;
cout<<"It's "<<Week_day(1)<<" days of this year!"<<endl;
}
void main()
{
Date D;
int y,m,d;
cout<<"Please input the Date:"<<endl;
cin>>y>>m>>d;
D.SetDate(y,m,d);
D.Show();
}
面向对象第一次实验参考代码
最新推荐文章于 2017-04-15 20:50:19 发布