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

using namespace std; 

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

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

Comment puis-je obtenir l'heure à venir, disons 1 heure plus tard, à partir de l'heure actuelle?obtenir la valeur du temps futur

Répondre

4

time(2) renvoie le nombre de secondes écoulées depuis 1970-01-01 00:00:00 +0000 (UTC). Une heure plus tard serait 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

Notez que [ 'temps()' est pas garanti pour revenir le temps en nombre de secondes après une époque] (http://en.wikipedia.org/wiki/Time_t) par la norme C, bien que le comportement est garanti par POSIX. –

+0

@silico: Avez-vous une référence? Je pensais que c'était la définition du temps (2) comme indiqué dans le lien fourni ci-dessus. –

+1

@Martin York: Notez que la page sur le lien fourni indique en bas "Conformer à SVr4, BSD 4.3, POSIX". La norme ISO C elle-même ne dit rien sur l'encodage de 'time_t'. –