February 16
Date e orari sono uso frequente nei programmi C ++. i programmi di Windows utilizzano diversi formati di tempo: tempo di sistema, ora locale, il tempo di file, il tempo di Windows e il tempo di MS-DOS. Il Run Time Library of C ++ offre diversi strumenti per estrarre e manipolare formati di tempo facilmente. Essi sono definiti nel file di intestazione time.h. Questa esercitazione dimostra l'uso di alcuni formati e strumenti.
1 Estrarre la data e l'ora correnti utilizzando _strdate e _strtime. Questo è il più semplice e una delle operazioni di data e ora più utilizzate in C ++:
includere <iostream.h>
includere <time.h>
void main () {
sDate char [9];
STIME char [9];
_strdate (sDate);
_strtime (STIME);
cout << "tempo:" << STIME << "Data:" << sDate << endl;
}
2 Capire il tempo del sistema, cercando in campi della struct _SYSTEMTIME. Si noti l'uso della parola chiave typedef per definire il struct come tipo SYSTEMTIME:
typedef struct {_SYSTEMTIME
WORD wYear;<br>
WORD wMonth;<br>
WORD wDayOfWeek;<br>
WORD wDay;<br>
WORD wHour;<br>
WORD wMinute;<br>
WORD wSecond;<br>
WORD wMilliseconds;<br>
} SYSTEMTIME;</b>
3 Visualizzazione del tempo universale e data utilizzando il tipo di SYSTEMTIME e la funzione GetSystemTime:
includere <iostream.h>
includere <Windows.h>
using namespace std;
int main () {
SYSTEMTIME * p_st = new SYSTEMTIME;
GetSystemTime (p_st);
cout << "Anno:" << p_st-> wYear << endl;
cout << "Mese:" << p_st-> wMonth << endl;
cout << "Day:" << p_st-> wDate << endl;
cout << "Ora:" << p_st-> wHour << endl;
cout << "Minutes:" << p_st-> wMinute << endl;
cout << "secondi:" << p_st-> wSeconds << endl;
cout << "millisecondi:" << p_st-> wMilliseconds << endl;
}
4 Utilizzare la funzione FileTimeToSystemTime di esprimere al momento in cui il numero di nanosecondi trascorsi dal 1 gennaio 1601. La funzione scrive il risultato di un tipo FILETIME e lo converte in un tipo SYSTEMTIME leggibile. Si noti che questa funzione accetta entrambi i tipi come puntatori:
BOOL WINAPI FileTimeToSystemTime (
in const FILETIME * PFT,
out SYSTEMTIME * pST
);