首页 > 代码库 > 使用时间类处理时间问题

使用时间类处理时间问题

定义一个时间类

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;
}


执行结果: