时钟Timer类

使用类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;
}

 我这一生都是坚定不移的唯物主义者, 唯有你,我希望有来生。                           --------周恩来

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值