首页 > 代码库 > 使用时间类处理时间问题
使用时间类处理时间问题
定义一个时间类
class Time//时间类 { public: void set_time( );//设置时间 void show_time( );//显示时间 int add_a_sec();//增加1秒 int add_a_minute();//增加1分钟 int add_a_hour();//增加1个小时 int add_seconds(int n);//增加n秒钟 int add_minutes(int n);//增加n分钟 int add_hours(int n);//增加n小时 private: bool is_time(int, int, int);//判断时间是否正确 int hour;//时 int minute;//分 int sec;//秒 };
函数名:set_time()
函数功能:设置时间
//设置时间 void Time::set_time( ) { char c1,c2; cout<<"请输入时间(格式hh:mm:ss)"; while(1) { cin>>hour>>c1>>minute>>c2>>sec; if(c1!=‘:‘||c2!=‘:‘) { cout<<"格式不正确,请重新输入"<<endl; } else if (!is_time(hour,minute,sec)) { cout<<"时间非法,请重新输入"<<endl; } else { break; } } }
函数名:show_time()
函数功能:显示时间
//输出时间 void Time::show_time( ) { cout<<hour<<":"<<minute<<":"<<sec<<endl; }
函数名:is_time
函数功能:判断时间格式是否正确
//判断时间格式是否正确 bool Time::is_time(int h,int m, int s) { if (h<=0 ||h>23 || m<=0 ||m>59 || s<0 ||s>59) { return false; } return true; }
函数名:add_a_sec()
函数功能:增加1秒
//增加1秒钟 int Time::add_a_sec() { sec++; if(60 == sec) { sec = 0;//秒钟清零 add_a_minute();//分钟增加1 } return sec; }
函数名:add_a_minute()
函数功能:增加1分钟
//增加1分钟 int Time::add_a_minute() { minute++; if(60 == minute) { minute = 0;//分钟清零 add_a_hour();//时钟加1 } return minute; }
函数名:add_a_hour()
函数功能:增加1小时
//增加1个小时 int Time::add_a_hour() { hour++; if(24 == hour) { hour = 0;//时钟清零 } return hour; }
函数名:add_seconds(int n)
函数功能:增加n秒
//增加n秒 int Time::add_seconds(int n) { sec = sec + n; if(sec>60) { int m = sec / 60;//计算多出的分钟 int s = sec % 60;//计算多出的秒钟 add_minutes(m);//增加m分钟 sec = s; } return sec; }
函数名:add_minutse(int n)
函数功能:增加n分钟
//增加n分钟 int Time::add_minutes(int n) { minute = minute + n; if(minute>60) { int h = minute / 60;//计算增加时间后的小时 int m = minute % 60;//计算增加时间后的分钟 add_hours(h);//增加h个小时 minute = m; } return minute; }
函数名:add_hours(int n)
函数功能:增加n小时
//增加n小时 int Time::add_hours(int n) { hour = hour + n; if(hour>24) { int h = hour % 24; hour = h; } return hour; }
程序的全部代码:
#include <iostream> using namespace std; class Time//时间类 { public: void set_time( );//设置时间 void show_time( );//显示时间 int add_a_sec();//增加1秒 int add_a_minute();//增加1分钟 int add_a_hour();//增加1个小时 int add_seconds(int n);//增加n秒钟 int add_minutes(int n);//增加n分钟 int add_hours(int n);//增加n小时 private: bool is_time(int, int, int);//判断时间是否正确 int hour;//时 int minute;//分 int sec;//秒 }; //设置时间 void Time::set_time( ) { char c1,c2; cout<<"请输入时间(格式hh:mm:ss)"; while(1) { cin>>hour>>c1>>minute>>c2>>sec; if(c1!=‘:‘||c2!=‘:‘) { cout<<"格式不正确,请重新输入"<<endl; } else if (!is_time(hour,minute,sec)) { cout<<"时间非法,请重新输入"<<endl; } else { break; } } } //输出时间 void Time::show_time( ) { cout<<hour<<":"<<minute<<":"<<sec<<endl; } //判断时间格式是否正确 bool Time::is_time(int h,int m, int s) { if (h<=0 ||h>23 || m<=0 ||m>59 || s<0 ||s>59) { return false; } return true; } //增加1秒钟 int Time::add_a_sec() { sec++; if(60 == sec) { sec = 0;//秒钟清零 add_a_minute();//分钟增加1 } return sec; } //增加1分钟 int Time::add_a_minute() { minute++; if(60 == minute) { minute = 0;//分钟清零 add_a_hour();//时钟加1 } return minute; } //增加1个小时 int Time::add_a_hour() { hour++; if(24 == hour) { hour = 0;//时钟清零 } return hour; } //增加n秒 int Time::add_seconds(int n) { sec = sec + n; if(sec>60) { int m = sec / 60;//计算多出的分钟 int s = sec % 60;//计算多出的秒钟 add_minutes(m);//增加m分钟 sec = s; } return sec; } //增加n分钟 int Time::add_minutes(int n) { minute = minute + n; if(minute>60) { int h = minute / 60;//计算增加时间后的小时 int m = minute % 60;//计算增加时间后的分钟 add_hours(h);//增加h个小时 minute = m; } return minute; } //增加n小时 int Time::add_hours(int n) { hour = hour + n; if(hour>24) { int h = hour % 24; hour = h; } return hour; } int main( ) { Time t1; t1.set_time( );//设置一个时间 cout<<"显示设置的时间:"; t1.show_time(); cout<<"增加1秒后的时间:"; t1.add_a_sec(); t1.show_time(); cout<<"增加1分钟后的时间:"; t1.add_a_minute(); t1.show_time(); cout<<"增加1小时后的时间:"; t1.add_a_hour(); t1.show_time(); cout<<"增加60秒后的时间:"; t1.add_seconds(60); t1.show_time(); cout<<"增加40分钟后的时间:"; t1.add_minutes(40); t1.show_time(); cout<<"增加10小时后的时间:"; t1.add_hours(10); t1.show_time(); return 0; }
执行结果:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。