C++怎么实现电子时钟效果

发布时间:2022-05-16 15:50:31 作者:iii
来源:亿速云 阅读:240

今天小编给大家分享一下C++怎么实现电子时钟效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

此精确到秒,因为有精度误差加上从计算机获取初始时间时处理比较简单,因此运行一段时间会出现较大的误差。

代码

#include<iostream>
#include<iomanip>
#include<Windows.h>
using namespace std;
class Clock
{
private:
    int hour, minute, second;
    int year, month, day,week;
public:
    Clock() {};
    void SetTime1(int _Hour, int _Mins, int _Sec){//初始时间函数
        hour = _Hour;
        minute = _Mins;
        second = _Sec;
    }
    void SetTime2(int _year, int _month, int _day,int _week) {//初始时间函数
        year = _year;
        month = _month;
        day = _day;
        week = _week;
    }
    void ShowTime() { 
        cout << year << "year  " << month << "month  " << day << "day  " << "weekday" << week << endl;
        cout << setw(2) << setfill('0') << hour << ":" << setw(2) << setfill('0') << minute << ":" << setw(2) << setfill('0') << second << endl;
    }//显示函数
    void Count_time() {//计时函数
        while (1)//24小时制
        {
            second += 1;
            if (hour >= 24) {
                hour -= 24;
                Correct_time();//年月日纠错
                week = week  % 7 + 1;//星期变化
            }
            if (minute >= 60){
                minute -= 60;
                hour += 1;
            }
            if (second >= 60) {
                second -= 60;
                minute += 1;
            }
            system("cls");//清屏,清除所有显示的信息
            ShowTime();
            Sleep(1000);//一秒延迟
        }
    }
    void Correct_time() {
        int flag = 0;
        if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))
            flag = 1;
        if (month == 2) {
            if ((flag == 1 && day == 29) || (flag == 0 && day == 28)) {
                day = 1;
                month += 1;
            }
            else
                day += 1;
        }
        else {
            switch (month) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:if (day == 31) { month += 1, day = 1; }
                   else day += 1; break;
            case 4:
            case 6:
            case 9:
            case 11:if (day == 30) { month += 1, day = 1; }
                   else day += 1; break;
            default:break;
            }
        }
    }
};
int main()
{
    Clock myClock;         //定义时钟类对象
    struct tm t;  //tm结构指针
    time_t now;  //声明time_t类型变量
    time(&now);  //获取系统日期和时间
    localtime_s(&t, &now);  //获取当地日期和时间
    myClock.SetTime2(t.tm_year + 1900, t.tm_mon + 1, t.tm_mday,t.tm_wday);
    myClock.SetTime1(t.tm_hour, t.tm_min, t.tm_sec);
    myClock.ShowTime();
    myClock.Count_time();
    return 0;
}

执行效果

C++怎么实现电子时钟效果

以上就是“C++怎么实现电子时钟效果”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

推荐阅读:
  1. 使用jQuery怎么实现一个电子时钟效果
  2. 详解QTimer与QTime如何实现电子时钟

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++

上一篇:C++怎么使用easyx画实时走动的钟表

下一篇:怎么设置Python文件的编码

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》