C++實現(xiàn)電子時鐘效果
更新時間:2022年05月16日 12:33:25 作者:德林恩寶
這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)電子時鐘效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了C++實現(xiàn)電子時鐘的具體代碼,供大家參考,具體內(nèi)容如下
此精確到秒,因為有精度誤差加上從計算機(jī)獲取初始時間時處理比較簡單,因此運行一段時間會出現(xiàn)較大的誤差。
代碼可共享
#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){//初始時間函數(shù)
? ? ? ? hour = _Hour;
? ? ? ? minute = _Mins;
? ? ? ? second = _Sec;
? ? }
? ? void SetTime2(int _year, int _month, int _day,int _week) {//初始時間函數(shù)
? ? ? ? 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;
? ? }//顯示函數(shù)
? ? void Count_time() {//計時函數(shù)
? ? ? ? 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結(jié)構(gòu)指針
? ? time_t now; ?//聲明time_t類型變量
? ? time(&now); ?//獲取系統(tǒng)日期和時間
? ? localtime_s(&t, &now); ?//獲取當(dāng)?shù)厝掌诤蜁r間
? ? 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;
}執(zhí)行效果

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Visual C++中Tab View的多種實現(xiàn)方法
這篇文章主要介紹了Visual C++中Tab View的多種實現(xiàn)方法,包括了CTabCtrl控件、CSheetCtrl標(biāo)簽選擇窗口以及靜態(tài)分割窗口等實現(xiàn)Tab View的方法,需要的朋友可以參考下2014-10-10
C++最短路徑Dijkstra算法的分析與具體實現(xiàn)詳解
經(jīng)典的求解最短路徑算法有這么幾種:廣度優(yōu)先算法、Dijkstra算法、Floyd算法。本文是對?Dijkstra算法的總結(jié),該算法適用于帶權(quán)有向圖,可求出起始頂點到其他任意頂點的最小代價以及對應(yīng)路徑,希望對大家有所幫助2023-03-03
C++實現(xiàn)LeetCode(30.串聯(lián)所有單詞的子串)
這篇文章主要介紹了C++實現(xiàn)LeetCode(30.串聯(lián)所有單詞的子串),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
詳解C++編程中的靜態(tài)成員與可變數(shù)據(jù)成員
這篇文章主要介紹了詳解C++編程中的靜態(tài)成員與可變數(shù)據(jù)成員,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2016-01-01
Visual Studio 2019 Professional 激活方法詳解
這篇文章主要介紹了Visual Studio 2019 Professional 激活方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05

