使用类Timer来实现时间的改变
#include<iostream>
#include<iomanip>
#include<Windows.h>
using namespace std;
class Timer
{
public:
Timer(){};
void GetTime(int newY = 0, int newMo = 0, int newD = 0, int newH = 0, int newM = 0, int newS = 0);
void display();
void increment();
private:
int year, month, day, hour, minute, second;
};
void Timer::GetTime(int newY, int newMo, int newD, int newH, int newM, int newS)
{
//数据初始化
year = newY;
month = newMo;
day = newD;
hour = newH;
minute = newM;
second = newS;
}
void Timer::display()
{
//设置输出格式
// setw(2) << setfill('0')表示不满两个单位补零
cout << setw(4) << setfill('0') << year << "." << setw(2) << setfill('0')
<< month << "." << setw(2) << setfill('0') << day << " "
<< setw(2) << setfill('0') << hour << ":" << setw(2) << setfill('0')
<< minute << ":" << setw(2) << setfill('0') << second << endl;
}
void Timer::increment()
{
//设置时间的变化(年月日的改动)
while(1)
{
second += 1;
if (second >= 60)
{
second -= 60;
minute += 1;
}
if (minute >= 60)
{
minute -= 60;
hour += 1;
}
if (hour >= 24)
{
hour -= 24;
day += 1;
}
int s[12]={31,28,31,30,31,30,31,31,30,31,30,31};
if((year%4==0&&year%100!=0)||(year%400==0))
{
s[1] = 29;
}
for(int i=0;i<12;i++)
{
if(month-1==i)
{
if(day>=s[i]+1)
{
day -= s[i];
month +=1;
}
}
}
if (month>=13)
{
month -= 12;
year +=1;
}
//设置每秒变化一次
system("cls");
display();
Sleep(1000);
}
}
int main()
{
Timer Clock;
Clock.GetTime(2018,2,28,23,59,55);
Clock.display();
Clock.increment();
return 0;
}
我这一生都是坚定不移的唯物主义者, 唯有你,我希望有来生。 --------周恩来