c++日记-日期操作

  定义一个满足下列要求的Date类: ①用下面的格式输出日期:日/月年 ②可运行在日期上加一天操作 ③设置日期 编写的程序如下: #include class Date{ int year;//三个输入量:年、月、日 int month; int day; public://三个函数:输出函数,加一天函数,设置日期的函数 void Print(); void AddOneDay(); void SetDay(int y,int m,int d); protected://保护函数,考虑到年份分为闰年,月份有大月小月之分. bool Legal(int y, int m, int d); bool IsLeapYear(int y); }; void Date::Print()//定义输出函数 { cout < <<"/" < <<"/" < < 9999||y<1||d<1||m<1||m>12) return false; int dayLimit=31; switch(m) case 4: case 6: case 9: case 11: dayLimit--;//4.6.9.11为小月,只有30天 if(m==2) dayLimit = IsLeapYear(y) ? 29 : 28;//闰年二月29天,非闰年的二月只有28天; return (d>dayLimit)? false : true; } bool Date::IsLeapYear(int y)//判断是否是闰年 { return !(y%4)&&(y%100)||!(y%400); } void Date::AddOneDay() //加一天的函数 { switch(month){ case 1:case 3:case 5:case 7:case 8:case 10://大月满了31天,加一天,就要进一个月,day=1; if(day==31){month++;day=1;} else {day++;} break; case 12://12月满了31天,在加一天就变成了一月一号了 if(day==31){year++;month=1;day=1;} else {day++;} break; case 4:case 6:case 9:case 11://小月满三十天,在加一天就进一个月,day=1; if(day==30) {month++;day=1;} else {day++;} break; case 2: if(IsLeapYear(year))//闰年的二月 {if(day=29) {month++;day=1;} else {day++;} } else { if(day=28) {month++;day=1;} else {day++;}} } } void Date::SetDay(int y, int m, int d)//设置日期 { if(Legal(y,m,d)) day=d, month=m, year=y; } void main()//主函数,调用类的函数 { int year,month,day; class Date d; cout<<"Please input the date :"; cin>>year>>month>>day; d.SetDay(year,month,day); d.Print(); d.AddOneDay(); d.Print(); d.SetDay(2007, 10,20); d.Print(); } (2) 定义一个时间类Time,能提供和设置由时、分、秒组成的时间,并编出应用程序,定义时间对象,设置时间,输出该对象提供的时间。并将类定义作为接口,用多文件结构实现之。 //Time.h class Time { public : Time(); ~Time(); bool SetTime(int h,int m,int s); void GetTime(int &h,int &m,int &s); void Print(); private: int iHour,iMinute,iSecond; }; //Time.cpp #include #include "Time.h" Time::Time(){iHour=1;iMinute=1;iSecond=1;} Time::~Time(){} bool Time::SetTime(int h,int m,int s) {if((h<0)||(h>23)) return false; if((m<0)||(m>59)) return false; if((s<0)||(s>59)) return false; iHour =h;iMinute= m;iSecond =s;return true; } void Time::GetTime(int &h,int &m,int &s){h=iHour;m=iMinute;s=iSecond;} void Time::Print(){cout< <<':'< <<':'< #include "Time.h" void main() { Time t; t.SetTime(23,44,59); t.Print(); } 在visual c++调试通过的程序。希望大家能提出意见于一改善。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值