Qt設定系統時間(使用SetSystemTime API函數)

來源:互聯網
上載者:User

標籤:技術   color   類型   使用   結構體   div   html   nbsp   www   

大家都知道Qt中有QDateTime等有關時間與日期的類,類中包含很多成員函數,可以很方便的實現有關時間與日期的操作,比如:想要獲得系統當前的時間與日期,可以調用currentDateTime(); 但是Qt並沒有提供設定系統時間的方法,這樣我們只能自己來區分平台,調用平台相關的API,這篇文章實現在Windows下的設定。

常用的與時間有關的Win32 API有兩個:GetSystemTime();  與  SetSystemTime();  下面是函數原型:

 

VOID GetSystemTime(LPSYSTEMTIME lpSystemTime);
BOOL SetSystemTime( const SYSTEMTIME *lpSystemTime ); 

 我們查一下 MSDN 看看 LPSYSTEMTIME 與 SYSTEMTIME 是什麼東東:

typedef struct _SYSTEMTIME {
    WORD wYear;
    WORD wMonth;
    WORD wDayOfWeek;
    WORD wDay;
    WORD wHour;
    WORD wMinute;
    WORD wSecond;
    WORD wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME; 

 從中我們知道 SYSTEMTIME 為結構體類型,LPSYSTEMTIME為結構體指標,傳遞給兩個函數的參數都必須是指標或參考型別,下面看一個Qt的調用執行個體:

 1 #include <QtCore/QCoreApplication>
 2 #include <iostream>
 3 #include <time.h>
 4 #include <windows.h>
 5 #include <QDateTime>
 6 #include <QDebug>
 7 using namespace std;
 8 
 9 bool setDate(int,int,int);
10 int main(int argc, char *argv[])
11 {
12     QCoreApplication a(argc, argv);
13     qDebug()<<QDateTime::currentDateTime()<<endl;  // Qt API 輸出目前時間
14    setDate(2011,1,1);                             //設定時間
15     qDebug()<<QDateTime::currentDateTime()<<endl;  // Qt API 擷取目前時間
16    return 0;   //讓程式完成任務直接退出吧...
17 }
18 
19 bool setDate(int year,int mon,int day)
20 {
21     SYSTEMTIME st;     
22     GetSystemTime(&st);    // Win32 API 擷取系統目前時間,並存入結構體st中
23     st.wYear=year;
24     st.wMonth=mon;
25     st.wDay=day;
26 
27    return SetSystemTime(&st);    //Win32 API 設定系統時間
28 }
29 

 

http://www.cnblogs.com/hicjiajia/archive/2010/08/27/1810363.html

Qt設定系統時間(使用SetSystemTime API函數)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.