一个关于时间的静态变量的应用

/*  Copyright  (c)  2016

*    All rights reserved

*    文件名称:3.cpp

*   作者:刘丽

*   完成日期:2016年 4  月 7日

*   版本号: v1.0

*

*   问题描述:一个关于时间类的静态成员应用

*/

#include <iostream>
#include<string>
using namespace std;
class Time
{
    public:
        Time(int=0,int =0,int =0);
        void show_time ();
        void add_seconds(int );
        void add_minutes(int);
        void add_hours(int n);
        static void change24();
        static void changefrom();
    private:
        static bool is_24;
        static bool from0;
        int hour;
        int minute;
        int sec;

};
 bool Time::is_24=true;
bool Time::from0=false;
Time::Time(int hour,int minute,int sec):hour(hour),minute(minute),sec(sec)
{
}
void Time::show_time ()
{
	int t;
    if(from0==true)
	{
		if(is_24==true)
		{
			if(hour<10)
				cout<<"0";    cout<<hour<<":";
			if(minute<10)
				cout<<"0";    cout<<minute<<":";
			if(sec<10)
				cout<<"0";    cout<<sec<<endl;
		}
		else
		{   
			
			if(hour>12)
			{
				t=hour%12;
				if(t<10)
					cout<<"0";    cout<<t<<":";
				if(minute<10)
					cout<<"0";    cout<<minute<<":";
				if(sec<10)
					cout<<"0";    cout<<sec<<endl;
			}
			else
			{
				if(hour<10)
					cout<<"0";    cout<<hour<<":";
				if(minute<10)
					cout<<"0";    cout<<minute<<":";
				if(sec<10)
					cout<<"0";    cout<<sec<<endl;

			}
				


		}


	}
	else //from0==false
	{ 
		if(is_24==true)
			cout<<hour<<":"<<minute<<":"<<sec<<endl;
		else if(hour>12)
				cout<<hour%12<<":"<<minute<<":"<<sec<<" pm"<<endl;
             else
				cout<<hour<<":"<<minute<<":"<<sec<<" am"<<endl;

	}
   

   

}
void Time::add_seconds(int n)
{
    if(sec+n>60)
    {

        sec=(sec+n)%60;
        add_minutes((sec+n)/60);
    }
    else sec+=n;


}
void Time::add_minutes(int n)
{
    if(minute+n>60)
    {

        minute=(minute+n)%60;
        add_hours((minute+n)/60);
    }
    else minute+=n;
}
void Time::add_hours(int n)
{
    hour+=n;
    if(hour>=24)
        hour=hour%24;
}
 void Time::change24()
{
    if(is_24==true)
        is_24=false;
    else
            is_24=true;


}
void Time::changefrom()
{
    if(from0==true)
        from0=false;
    else
        from0=true;

}
int main()
{
    Time t1(23,14,25),t2(8,45,6);
    cout<<"24时制,不前导0:"<<endl;
    cout<<"t1是:";
    t1.show_time();
    cout<<"t2是:";
    t2.show_time();

    cout<<"10小时后,切换是否前导0:"<<endl;
    t1.add_hours(10);
    t1.changefrom();
    t1.show_time();
    t2.add_hours(10);
    t2.show_time();


    cout<<"换一种形式"<<endl;
    t1.change24();
    t1.show_time();
    t2.show_time();



    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值