2011-11-18 117 views
0

好的,所以我的問題是,我該如何製作一個基本上執行程序其餘部分的程序,例如12pm。例如一些非現實的代碼:程序在特定時間執行

#include <stdio.h> 
#include <time.h> 

int main() 
{ 

    Get_time() //Gets system time 

    if(time() == 254pm){ //if time is 2:54pm 

      printf("Time: 2:54pm\n"); 
     } 

     else printf("Program can not execute at this time.\n"); 

     return 0; 
} 

有誰知道我該怎麼做類似的事情?

+3

您是否試圖重塑['cron'](http://en.wikipedia.org/wiki/Cron)? –

+0

不,只需要我的程序在特定時間執行其餘的代碼。對於windows。 – shix

+4

或[Windows計劃程序](http://support.microsoft.com/kb/308569),因爲這具體被標記爲'winapi'。 「Scheduler API」記錄在[這裏](http://msdn.microsoft.com/en-us/library/windows/desktop/aa383608(v = vs.85).aspx) –

回答

2

使用localtime來獲得當前的時間。

#include <stdio.h> 
#include <time.h> 

int main() 
{ 
    // Get system time 
    time_t rawtime; 
    struct tm * timeinfo; 

    time (&rawtime); 
    timeinfo = localtime (&rawtime); 

    // Check 
    if(timeinfo->tm_hour == 14 && timeinfo->tm_min == 54) 
    { 
     printf("Time: 2:54pm\n"); 
    } 

    return 0; 
} 
+1

這很好用。 :D非常感謝。 – shix

0

有很多方法可以做到這一點,但重要的部分是保持CPU空閒。否則無限循環,你會花費大量的資源。我會建議使用Sleep()或類似boost庫的智能等待機制。 Sleep()對你是一個更簡單,所有你需要的是包括windows.h

示例代碼:

#include <windows.h> 
#include <time.h> 

int main() { 
    int timeDelta = ...; // calculate time delta in miliseconds here (12 PM today - now) 
    Sleep(timeDelta); 
    // execute your code here 
}