当前位置:编程学习 > C/C++ >>

时间类

[cpp] 
/*  
 * Copyright (c) 2012, 烟台大学计算机学院  
 * All rights reserved.  
 * 文件名称:123.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(); //增加1分钟  
}  
inline void Time::add_a_minute() //增加1分钟  
{  
    ++minute;  
    if(minute>59)  
    add_an_hour();//增加1小时  
}  
inline void Time::add_an_hour() //增加1小时  
{  
    ++hour;  
    if(hour>23)  
    hour=0;  
}  
void Time::add_seconds(int n)  
{  
    sec+=n;  
    if(sec>59)  
    {  
        add_minutes(n/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( );  
  
    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_seconds(40); //增加40秒钟  
    cout<<"增加40秒钟后:";  
    t1.show_time( );  
  
    t1.add_minutes(127); //增加127分钟  
    cout<<"增加127分钟后:";  
    t1.show_time( );  
  
    t1.add_hours(8); //增加8小时  
    cout<<"增加8小时后:";  
    t1.show_time( );  
    return 0;  
}  
补充:软件开发 , C++ ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,