微信转账后拉黑:请教一道c++编程问题

来源:百度文库 编辑:高考问答 时间:2024/05/06 06:53:15
1,完成程序每一个功能定一个成员函数
功能
1,实现输入日期和显示日期
2,实现设置新的日期并显示
3,求某一设置日期的前一天的日期
4,求某一设置日期的后一天的日期
5,求某一设置日期的若干天前的日期
6,求某一设置日期的若干天后的日期
用类完成
太复杂了,我看不懂
能否简单点
我想全部用 if函数,这样容易看懂
谢谢

//test6.h

class DateMaster
{
public:
DateMaster();
DateMaster(int year,int month,int day);
void SetDate(int year,int month,int day);
void ShowDate();
DateMaster GetNextDate();
DateMaster GetPreviousDate();
DateMaster GetDateBefore(int number);
DateMaster GetDateAfter(int number);

protected:
int m_year;
int m_month;
int m_day;

private:
DateMaster GetDate(int number);
static int GetDaysNumberByMonth(int year,int month);
static bool IsLeapYear(int year);
static int DayNumber[13];
};

//test6.cpp

#include "test6.h"
#include <stdlib.h>
#include <iostream.h>

int DateMaster::DayNumber[13] = {0,31,29,31,30,31,30,31,31,30,31,30,31};

DateMaster::DateMaster()
{
}

DateMaster::DateMaster(int year,int month,int day)
:m_year(year),m_month(month),m_day(day)
{
}

void DateMaster::SetDate(int year,int month,int day)
{
m_year = year;
m_month = month;
m_day = day;
}

void DateMaster::ShowDate()
{
cout<<endl<<m_year<<"-"<<m_month<<"-"<<m_day<<endl;
}

DateMaster DateMaster::GetNextDate()
{
return GetDate(1);
}

DateMaster DateMaster::GetPreviousDate()
{
return GetDate(-1);
}

DateMaster DateMaster::GetDateBefore(int number)
{
return GetDate(-number);
}

DateMaster DateMaster::GetDateAfter(int number)
{
return GetDate(number);
}

DateMaster DateMaster::GetDate(int number)
{
DateMaster dm;
int month = m_month;
int year = m_year;
int day = m_day+number;
int dayNumber = GetDaysNumberByMonth(year,month);
while(day<=0)
{
if(month == 1)
{
month = 12;
year--;
}
month--;
dayNumber = GetDaysNumberByMonth(year,month);
day += dayNumber;
}
while(day > dayNumber)
{
day -= dayNumber;
month++;
if(month>12)
{
month = 1;
year++;
}
dayNumber = GetDaysNumberByMonth(year,month);
}
dm.SetDate(year,month,day);
return dm;
}

int DateMaster::GetDaysNumberByMonth(int year,int month)
{
if(month == 2)
{
return IsLeapYear(year)?DayNumber[month]:DayNumber[month]-1;
}
return DayNumber[month];
}

bool DateMaster::IsLeapYear(int year)
{
if((year%4 == 0)&&(year%100 !=0)) return true;
else return false;
}

int main()
{
DateMaster today(2006,6,13);
today.ShowDate();
DateMaster date;
date = today.GetDateAfter(-365);
date.ShowDate();
return 0;
}

定一个成员函数
功能
这是啥意思,说明白点.