时间类

/*

*程序的版权和版本声明部分        

* Copyright (c)2013, 烟台大学计算机学院学  

* All rightsreserved.     

* 文件名称: Bulk.cpp   

* 作    者:  田凤    

*完成日期:2013年3月19日  

* 版本号: 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_seconds(int);//增加n秒钟
 void add_minutes(int);//增加n分钟
 void add_hours(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)
  add_a_minute();
}
inline void Time::add_a_minute()
{
 minute++;
 if(minute>59)
  add_an_hour();
}
inline void Time::add_an_hour()
{
 hour++;
 if(hour>23)
  hour=0;//进入下一天
}
void Time::add_seconds(int n)
{
 sec+=n;
 if(sec>59)
  add_minutes(sec/60);  
        sec%=60; 
}
void Time::add_minutes(int n)
{
 minute+=n;
 if(minute>59)
  add_hours(minute/60);  
        minute%=60;  
}
void Time::add_hours(int n)
{
 hour+=n;  
    if (hour>23)  
        hour%=24;
}
int main( )  
{  
    Time t1;    
    Time &t2=t1;  
    t1.set_time( );    
    cout<<"现在时间是:";  
    t2.show_time( );  
 //增加1秒钟   
    t1.add_a_sec();  
    cout<<"增加1秒钟后:";  
    t1.show_time( );  
    //增加1分钟 
    t1.add_a_minute();   
    cout<<"增加1分钟后:";  
    t1.show_time( );  
    //增加1小时 
    t1.add_an_hour();   
    cout<<"增加1小时后:";  
    t1.show_time( );  
    //增加30秒
    t1.add_seconds(30);  
    cout<<"增加30秒钟后:";  
    t1.show_time( );  
 //增加100分钟
    t1.add_minutes(100);    
    cout<<"增加100分钟后:";  
    t1.show_time( );  
 //增加10小时 
    t1.add_hours(10);   
    cout<<"增加10小时后:";  
    t1.show_time( );  
    return 0;  
}  
  


运行结果:

                     

心得体会:啊,有点晕~~

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值