11_3.cpp
资源名称:c.rar [点击查看]
上传用户:puke2000
上传日期:2022-07-25
资源大小:912k
文件大小:1k
源码类别:

C#编程

开发平台:

Visual C++

  1. //11_3
  2. #ifndef DATE
  3. #define DATE
  4. #include <iostream.h>
  5. class Date{
  6. public:
  7.   void Display();
  8.   void AddOneDay();
  9.   void SetDay(int y,int m,int d);
  10. protected:
  11.   bool Legal(int y, int m, int d);
  12.   bool IsLeapYear(int y);
  13.   int year;
  14.   int month;
  15.   int day;
  16. };
  17. void Date::Display()
  18. {
  19.   cout <<day <<"/" <<month <<"/" <<year <<endl;
  20. }
  21. void Date::AddOneDay()
  22. {
  23.   if(Legal(year,month,day+1))
  24.     day++;
  25.   else if(Legal(year,month+1,1))
  26.     month++,day=1;
  27.   else if(Legal(year+1,1,1))
  28.     day=1,month=1,year++;
  29. }
  30. void Date::SetDay(int y, int m, int d)
  31. {
  32.   if(Legal(y,m,d))
  33.     day=d, month=m, year=y;
  34. }
  35. bool Date::Legal(int y, int m, int d)
  36. {
  37.   if(y>9999||y<1||d<1||m<1||m>12)
  38.     return false;
  39.   int dayLimit=31;
  40.   switch(m) case 4: case 6: case 9: case 11: dayLimit--;
  41.   if(m==2) dayLimit = IsLeapYear(y) ? 29 : 28;
  42.   return (d>dayLimit)? false : true;
  43. }
  44. bool Date::IsLeapYear(int y)
  45. {
  46.   return !(y%4)&&(y%100)||!(y%400);
  47. }
  48. #endif