面向对象练习(Date类)
/*
**项目:从键盘输入年月日,计算这一天是这一年的第几天
**时间:2020.02.29
*/
具体实现:
#include <iostream>
using namespace std;
/*
**项目:从键盘输入年月日,计算这一天是这一年的第几天
**时间:2020.02.29
*/
class Date
{
public:
void setYear(int y);
void setMonth(int m);
void setDay(int d);
void setDate(int y,int m,int d);//修改年月日
void printDate(); //打印
bool isLeap(); //判断闰年还是平年
int numberofDay(); //一年中的第几天
private:
int year;
int month;
int day;
};
void Date::setYear(int y)
{
year=y;
}
void Date::setMonth(int m)
{
month=m;
}
void Date::setDay(int d)
{
day=d;
}
void Date::setDate(int y,int m,int d)
{
year=y;
month=m;
day=d;
}
void Date::printDate()
{
cout<<year<<"年"<<month<<"月"<<day<<"日"<<endl;
}
bool Date::isLeap()
{
//被4整除,不能被100整除 或者 能被400整除
if(year%400==0||(year%4==0&&year%100!=0))
{
return true;
}
else
{
return false;
}
}
int Date::numberofDay()
{
int number=0;
int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
if(isLeap())//是闰年,2月为29天
{
a[1]=29;
}
for(int i=0;i<month-1;i++)
{
number=a[i]+number;
}
number=number+day;
return number;
}
int main()
{
Date date;
int y,m,d;
cout<<"请输入年月日:";
cin>>y>>m>>d;
date.setDate (y,m,d);
date.printDate();
cout<<"是一年中的第"<<date.numberofDay()<<"天"<<endl;
return 0;
}