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