Datums en tijden zijn frequent gebruik in C++-programma's. Windows-programma's gebruiken verschillende verschillende tijdnotaties: systeemtijd, lokale tijd, bestand tijd, tijd van Windows en MS-DOS tijd. De Run Time bibliotheek voor C++ biedt verschillende tools om te halen en tijdnotaties gemakkelijk te manipuleren. Ze zijn gedefinieerd in het headerbestand time.h. Deze tutorial toont het gebruik van sommige formaten en hulpmiddelen.
Wat die u nodig hebt
- Intermediair niveau van C++
- C++ compiler met IDE, zoals Visual Studio 2008
Pak de huidige datum en tijd met behulp van _strdate en _strtime. Dit is de eenvoudigste en een van de meest gebruikte datum-tijd operaties in C++:
opnemen< iostream.h="">
opnemen< time.h="">void main() {}
char sdate [9];
char stime [9];
_strdate (sdate);
_strtime (stime);
Cout< "time:="" "="">< stime="">< "="" date:="" "="">< sdate=""><>
}
Systeemtijd begrijpen door te kijken naar de velden voor de _SYSTEMTIME struct. Let op het gebruik van het sleutelwoord typedef definiëren van het struct SYSTEMTIME typt:
typedef struct _SYSTEMTIME {}WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME;Universele tijd en datum met behulp van het type SYSTEMTIME en de GetSystemTime functie weergeven:
opnemen< iostream.h="">
opnemen< windows.h="">met behulp van namespace std;
int main() {}
SYSTEMTIME * p_st = nieuwe SYSTEMTIME;
GetSystemTime(p_st);
Cout < "year:="" "=""> > < p_st-=""> >wYear<>
Cout < "month:="" "=""> > < p_st-=""> >wMonth<>
Cout < "day:="" "=""> > < p_st-=""> >wDate<>
Cout < "hour:="" "=""> > < p_st-=""> >wHour<>
Cout < "minutes:="" "=""> > < p_st-=""> >wMinute<>
Cout < "="" seconds:="" "=""> > < p_st-=""> >wSeconds<>
Cout < "milliseconds:="" "=""> > < p_st-=""> >wMilliseconds<>
}
De functie FileTimeToSystemTime gebruiken om de tijd wordt uitgedrukt als het aantal nanoseconden dat is verstreken sinds 1 januari 1601. De functie schrijft het resultaat naar een FILETIME-type en converteert deze naar een leesbare SYSTEMTIME type. Er rekening mee dat deze functie beide typen als verwijzingen accepteert:
BOOL WINAPI FileTimeToSystemTime)in const FILETIME * pFT,uit SYSTEMTIME * pST
);