2010-12-08 12 views
2
#include <time.h> 
#include <iostream> 

using namespace std; 

int main() 
{ 
    time_t current = time(0); 

    cout << ctime(&current) << endl; 
    return 0; 
} 

Wie kann ich die zukünftige Zeit, sagen 1 Stunde später, von der aktuellen Zeit?erhalten Zukunft Zeit Wert

Antwort

4

time(2) gibt die Anzahl der Sekunden seit 1970-01-01 00:00:00 +0000 (UTC) zurück. Eine Stunde später wäre current + 3600.

time_t current = time(0); 
time_t inOneHour = current + (60*60); // 60 minutes of 60 sec. 

cout << "Now: " << ctime(&current) << "\n" 
    << "In 1 hour: " << ctime(&inOneHour) 
    << "\n"; 
+2

Man beachte, dass [ 'time()' nicht zurück Zeit als eine Anzahl von Sekunden nach einer Zeit garantiert] durch den C-Standard (http://en.wikipedia.org/wiki/Time_t), obwohl Das Verhalten wird von POSIX garantiert. –

+0

@silico: Haben Sie eine Referenz? Ich dachte, das war die Definition von Zeit (2), wie im obigen Link gezeigt. –

+1

@Martin York: Beachten Sie, dass die Seite am angegebenen Link unten "Übereinstimmung mit SVr4, 4.3BSD, POSIX" angibt. Der ISO C-Standard sagt eigentlich nichts über die Kodierung von "time_t" aus. –