C++数字时钟

C++数字时钟

这个数字时钟所用到的知识比较全面

#include<iostream>
#include<ctime>
#include<iomanip>

using namespace std;


class Time{
	private:
		int Hour;
		int Minute;
		int Second;
	
	public:
		//构造函数,设置初始时间为00:00:00;
		Time(int h,int m,int s);
		Time();
		
		//set类设置时间
		void setHour(int h);
		void setMinute(int m);
		void setSecond(int s);
		
		//get类访问时间
		int getHour();
		int getMinute();
		int getSecond();
		
		//功能类
		void displayTime24();//按24小时制显示时间 
		void displayTime12a();//按12小时制显示时间 上午
		void displayTime12p();//按12小时制显示时间 下午
		void dida();	   //时间(按秒)增加 
}; 

//主函数
int main(){
	int hour,minute,second;
	double nowTime;
	cout << "请设置当前时间(以24小时制按顺序输入时 分 秒):" << endl;
	cin >> hour >> minute >> second ;
	cout << endl;
	//定义time类对象Ctime并初始化 
	Time CTime(hour,minute,second);
	//更新时间 
	while(1){
		//调用time函数库中time函数获取当前时间
		nowTime = time(0);
		//等待1秒
		while(time(0) < (nowTime+1));
		
		CTime.dida();
		cout << "\r";
		//24小时制更新:
		cout << "24小时制:"; 
		CTime.displayTime24(); 
		cout << "\t";
		
		//12小时制更新:
		
		//上午 
		cout << "12小时制:"; 
		if(CTime.getHour() < 12){
			cout << "AM ";
			CTime.displayTime12a();
		}
		//下午 
		else{
			cout << "PM "; 
			CTime.displayTime12p();
		}
		
	} 
	return 0;
} 


//功能函数的实现:
Time::Time(){
	setHour(0);
	setMinute(0);
	setSecond(0);
}

Time::Time(int h,int m,int s){
	setHour(h);
	setMinute(m);
	setSecond(s);
} 


void Time::setHour(int h){
	if(h >= 0 && h < 24){
		Hour = h;
	}
	else Hour = 0;
}

void Time::setMinute(int m){
	if(m >= 0 && m < 60){
		Minute = m;
	}
	else Minute = 0;
}

void Time::setSecond(int s){
	if(s >= 0 && s < 60){
		Second = s;
	}
	else Second = 0;
}


int Time::getHour(){
	return Hour;
}

int Time::getMinute(){
	return Minute;
}

int Time::getSecond(){
	return Second;
}


//24小时制 
void Time::displayTime24(){
	cout << setfill('0') <<
	setw(2) << getHour() << ':' <<
	setw(2) << getMinute() <<  ':' <<
	setw(2) << getSecond();
}
//12小时制 上午
 void Time::displayTime12a(){
	if(getHour() == 0){
		cout << setfill('0') <<
		setw(2) << "12" << ':' <<
		setw(2) << getMinute() <<  ':' <<
		setw(2) << getSecond();
	}
	else{
		cout << setfill('0') <<
		setw(2) << getHour() << ':' <<
		setw(2) << getMinute() <<  ':' <<
		setw(2) << getSecond();
	}
}
//12小时制 下午 
void Time::displayTime12p(){
	cout << setfill('0') <<
	setw(2) << (getHour()-12) << ':' <<
	setw(2) << getMinute() <<  ':' <<
	setw(2) << getSecond();
}

void Time::dida(){
	setSecond((getSecond()+1)%60);
	if(getSecond() == 0){
		setMinute((getMinute()+1)%60);
		if(getMinute() == 0){
			setHour((getHour()%24)+1);
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值