C++實(shí)現(xiàn)電子時(shí)鐘效果
本文實(shí)例為大家分享了C++實(shí)現(xiàn)電子時(shí)鐘的具體代碼,供大家參考,具體內(nèi)容如下
此精確到秒,因?yàn)橛芯日`差加上從計(jì)算機(jī)獲取初始時(shí)間時(shí)處理比較簡(jiǎn)單,因此運(yùn)行一段時(shí)間會(huì)出現(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í)間函數(shù) ? ? ? ? hour = _Hour; ? ? ? ? minute = _Mins; ? ? ? ? second = _Sec; ? ? } ? ? void SetTime2(int _year, int _month, int _day,int _week) {//初始時(shí)間函數(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() {//計(jì)時(shí)函數(shù) ? ? ? ? while (1)//24小時(shí)制 ? ? ? ? { ? ? ? ? ? ? second += 1; ? ? ? ? ? ? if (hour >= 24) { ? ? ? ? ? ? ? ? hour -= 24; ? ? ? ? ? ? ? ? Correct_time();//年月日糾錯(cuò) ? ? ? ? ? ? ? ? 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; ? ? ? ? //定義時(shí)鐘類(lèi)對(duì)象 ? ? struct tm t; ?//tm結(jié)構(gòu)指針 ? ? time_t now; ?//聲明time_t類(lèi)型變量 ? ? time(&now); ?//獲取系統(tǒng)日期和時(shí)間 ? ? localtime_s(&t, &now); ?//獲取當(dāng)?shù)厝掌诤蜁r(shí)間 ? ? 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í)行效果
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
基于Matlab實(shí)現(xiàn)野狗優(yōu)化算法的示例代碼
野狗優(yōu)化算法(Dingo?Optimization?Algorithm,?DOA)模仿澳大利亞野狗的社交行為。DOA算法的靈感來(lái)源于野狗的狩獵策略,即迫害攻擊、分組策略和食腐行為。本文將通過(guò)Matlab實(shí)現(xiàn)這一算法,感興趣的可以了解一下2022-04-04Qt實(shí)現(xiàn)邊加載數(shù)據(jù)邊顯示頁(yè)面的示例代碼
無(wú)論是MFC框架還是QT框架,實(shí)現(xiàn)加載數(shù)據(jù)的等待效果都是很麻煩的,不像WEB端輕輕松松一句代碼就搞定了。本文將通過(guò)Qt實(shí)現(xiàn)邊加載數(shù)據(jù)邊顯示頁(yè)面的功能,需要的可以參考一下2022-01-01C語(yǔ)言中怎么在main函數(shù)開(kāi)始前執(zhí)行函數(shù)
C語(yǔ)言中怎么在main函數(shù)開(kāi)始前執(zhí)行函數(shù)呢?下面小編就大家詳細(xì)的介紹一下。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-10-10C/C++ 中const關(guān)鍵字的用法小結(jié)
C++中的const關(guān)鍵字的用法非常靈活,而使用const將大大改善程序的健壯性。這篇文章主要介紹了C/C++ 中const關(guān)鍵字的用法,需要的朋友可以參考下2020-02-02