时间类
来源:互联网 发布:南风知我意七微书包网1 编辑:程序博客网 时间:2024/06/15 18:36
/** 程序的版权和版本声明部分* Copyright (c)2013, 烟台大学生命科学学院学生* All rightsreserved.* 文件名称:Time.cpp* 作 者:TGQ* 完成日期:2014年6月11日* 版 本 号: v1.0* 输入描述:时间(时、分、秒)。* 问题描述:将成员函数在类内定义(内置成员函数)增加成员函数 实现对应功能。 解决问题:实现对输入时间的简单计算*/#include <iostream>using namespace std;class Time{public:void set_time();void show_time();inline void add_a_sec(); // 增加1秒钟inline void add_a_minute(); // 增加1分钟inline void add_an_hour(); // 增加1小时void add_sec(int); // 增加n秒钟void add_minute(int); // 增加n分钟void add_hour(int); // 增加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 > 24 || m < 0 || m > 60 || s < 0 || s > 60)return false;return true;}inline void Time::add_a_sec(){++sec;if (sec > 59){sec = 0;add_a_minute();}}inline void Time::add_a_minute(){ ++minute; if (minute > 59) { minute = 0; add_an_hour(); }}inline void Time::add_an_hour(){ ++hour; if (hour > 23) hour = 0;}void Time::add_sec(int n){ sec += n; if (sec > 59) { add_minute(sec / 60); sec = sec % 60; }}void Time::add_minute(int n){ minute += n; if (minute > 59) { add_hour(minute / 60); minute = minute % 60; }}void Time::add_hour(int n){ hour += n; if (hour > 23) hour = hour % 24;}int main(){ Time t1; Time &t2=t1; t1.set_time( ); cout<<"现在时间是:"; t2.show_time( ); t1.add_a_sec(); // 增加1秒钟 cout<<"增加1秒钟后:"; t1.show_time( ); t1.add_a_minute(); // 增加1分钟 cout<<"增加1分钟后:"; t1.show_time( ); t1.add_an_hour(); // 增加1小时 cout<<"增加1小时后:"; t1.show_time( ); t1.add_sec(40); // 增加40秒钟 cout<<"增加40秒钟后:"; t1.show_time( ); t1.add_minute(127); // 增加127分钟 cout<<"增加127分钟后:"; t1.show_time( ); t1.add_hour(8); // 增加8小时 cout<<"增加8小时后:"; t1.show_time( ); return 0;}
以后还得改进,如增加月份和年份,得考虑各个月份和闰年
0 0
- 时间类
- 时间类
- 时间类
- 时间类
- 时间类
- 时间类
- 时间类
- 时间类
- 时间类
- 时间类
- 时间类
- 时间类
- 时间类
- 时间类
- 时间类
- 时间类
- 时间类
- 时间类
- 黑马程序员_类的合理设计_基本的属性&对象类型的属性
- 【转】Myeclipse 10.6 导出war问题解决思路
- OC学习4——@property和@synthesize
- Qt学习之将资源文件添加到工程里面
- linux unlink() access() mkfifo()使用实例
- 时间类
- linux下top命令的使用
- 嵌入式Linux启动过程
- QT中文乱码问题
- struts1.2的action参数配置
- 强制进程产生coredump,检测死锁以及进程快照
- 2014-6-11任务完成情况
- 4-1. 水仙花数(20)
- 二维向量旋转