C++實現(xiàn)電子時鐘效果
更新時間:2022年05月16日 12:33:25 作者:德林恩寶
這篇文章主要為大家詳細介紹了C++實現(xiàn)電子時鐘效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了C++實現(xiàn)電子時鐘的具體代碼,供大家參考,具體內(nèi)容如下
此精確到秒,因為有精度誤差加上從計算機獲取初始時間時處理比較簡單,因此運行一段時間會出現(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)文章
基于Matlab實現(xiàn)野狗優(yōu)化算法的示例代碼
野狗優(yōu)化算法(Dingo?Optimization?Algorithm,?DOA)模仿澳大利亞野狗的社交行為。DOA算法的靈感來源于野狗的狩獵策略,即迫害攻擊、分組策略和食腐行為。本文將通過Matlab實現(xiàn)這一算法,感興趣的可以了解一下2022-04-04
Qt實現(xiàn)邊加載數(shù)據(jù)邊顯示頁面的示例代碼
無論是MFC框架還是QT框架,實現(xiàn)加載數(shù)據(jù)的等待效果都是很麻煩的,不像WEB端輕輕松松一句代碼就搞定了。本文將通過Qt實現(xiàn)邊加載數(shù)據(jù)邊顯示頁面的功能,需要的可以參考一下2022-01-01
C語言中怎么在main函數(shù)開始前執(zhí)行函數(shù)
C語言中怎么在main函數(shù)開始前執(zhí)行函數(shù)呢?下面小編就大家詳細的介紹一下。需要的朋友可以過來參考下,希望對大家有所幫助2013-10-10
C/C++ 中const關(guān)鍵字的用法小結(jié)
C++中的const關(guān)鍵字的用法非常靈活,而使用const將大大改善程序的健壯性。這篇文章主要介紹了C/C++ 中const關(guān)鍵字的用法,需要的朋友可以參考下2020-02-02

