C++实现电子时钟效果

 更新时间:2022年05月16日 12:33:25   作者:德林恩宝  
这篇文章主要为大家详细介绍了C++实现电子时钟效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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;
}

执行效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Windows下CMake的下载与安装过程

    Windows下CMake的下载与安装过程

    CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程),这篇文章主要介绍了Windows下CMake的下载与安装,需要的朋友可以参考下
    2022-02-02
  • Swift编程中的泛型解析

    Swift编程中的泛型解析

    这篇文章主要介绍了Swift编程中的泛型解析,是Swift入门学习中的基础知识,需要的朋友可以参考下
    2015-11-11
  • C/C++解析文件名和目录路径的方法

    C/C++解析文件名和目录路径的方法

    #include <libgen.h> 是一个 C/C++ 语言的头文件,主要用于字符串处理,特别是在处理文件路径时,它提供了一些函数来帮助你解析文件名和目录路径,本文就给大家介绍一下C/C++解析文件名和目录路径的方法,需要的朋友可以参考下
    2024-10-10
  • C语言中循环嵌套的应用方式

    C语言中循环嵌套的应用方式

    这篇文章主要介绍了C语言中循环嵌套的应用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • 详解C++模板编程中typename用法

    详解C++模板编程中typename用法

    typename在C++类模板或者函数模板中经常使用的关键字,此时作用和class相同,只是定义模板参数,下面通过例子给大家介绍c++模板typename的具体用法,一起看看吧
    2021-07-07
  • C++ STL标准库之std::list使用介绍及用法详解

    C++ STL标准库之std::list使用介绍及用法详解

    std::list是支持常数时间从容器任何位置插入和移除元素的容器,下面这篇文章主要给大家介绍了关于C++ STL标准库之std::list使用介绍及用法详解的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • 基于Matlab制作一个数独求解器

    基于Matlab制作一个数独求解器

    这篇文章主要为大家详细介绍了如何利用Matlab制作一个数独求解器,文中的示例代码讲解详细,对我们学习Matlab有一定帮助,需要的可以参考一下
    2022-05-05
  • C++中四种对象生存期和作用域以及static的用法总结分析

    C++中四种对象生存期和作用域以及static的用法总结分析

    以下是对C++中四种对象生存期和作用域以及static的用法进行了详细的介绍,需要的朋友可以过来参考下
    2013-09-09
  • C++实现LeetCode(173.二叉搜索树迭代器)

    C++实现LeetCode(173.二叉搜索树迭代器)

    这篇文章主要介绍了C++实现LeetCode(173.二叉搜索树迭代器),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • C语言利用模板实现简单的栈类

    C语言利用模板实现简单的栈类

    这篇文章主要为大家详细介绍了C语言利用模板实现简单的栈类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12

最新评论