< CPP

Dátum és idő

Szerző: Sallai András

Copyright © Sallai András, 2011

Licenc: CC Attribution-Share Alike 4.0 International

Web: https://szit.hu

Példa

#include <ctime> #include <iostream> #include <ctime> using namespace std; int main() { time_t ido = time(0); tm *lt = localtime(&ido); cout << "Hónap: " << lt->tm_year + 1900 << endl; }

struct tm

Idő struktúra

A struktúra dátum és idő adatokat tartalmaz komponensenként. A struktúrában ez kilenc egész típust jelent, melyek a sorba a következők:

int	tm_sec;
int	tm_min;
int	tm_hour;
int	tm_mday;
int	tm_mon;
int	tm_year;
int	tm_wday;
int	tm_yday;
int	tm_isdst;

Jelentésük:

Tagok	Jelentés	Tartomány
tm_sec	másodpercek a perc után	0-61*
tm_min	percek az óra után	0-59
tm_hour	órák éjféltől	0-23
tm_mday	a hónap napja	1-31
tm_mon	hónap január óta	0-11
tm_year	évek 1900 óta
tm_wday	napok vasárnap óta	0-6
tm_yday	napok január 1 óta	0-365
tm_isdst	nyári időszámítás jelző

Idő konvertálása ctime segítségével

#include <iostream> #include <ctime> using namespace std; int main() { time_t ido; time(&ido); cout << "Idő: " << ctime(&ido) << endl; }
#include <iostream> #include <ctime> using namespace std; int main() { time_t ido; time(&ido); cout << "Idő: " << asctime(localtime(&ido)) << endl; }

Formázott kiírás

#include <iostream> #include <ctime> using namespace std; int main() { time_t ido; char idostr[80]; struct tm * timeinfo; time(&ido); timeinfo = localtime(&ido); strftime(idostr, 80, "%X", timeinfo); cout << "Idő: " << idostr << endl; }
Kód	Jelentés	Példa
%a	A hét napja rövidítve *	Thu
%A	A hét napja teljes névvel *	Thursday
%b	A hónap rövidítve *	Aug
%B	A hónap teljes neve *	August
%c	A dátum és idő megjelenítése *	Thu Aug 23 14:55:02 2001
%d	A hónap napja (01-31)	23
%H	Óra 24 órás formátumban (00-23)	14
%I	Óra 12 órás formátumban (01-12)	02
%j	Az év napja (001-366)	235
%m	Hónap decimális számmal (01-12)	08
%M	Perc (00-59)	55
%p	AM vagy PM név	PM
%S	Másodperc (00-61)	02
%U	Hányadik hét (00-53)	33
%w	A hét napja decimális számként. A 0 a vasárnap (0-6)	4
%W	Hányadik hét (00-53)	34
%x	A dátum megjelenítése *	08/23/01
%X	Az idő megjelenítése *	14:55:02
%y	Év, az utolsó két számjegy (00-99)	01
%Y	Év	2001
%Z	Időzóna neve vagy rövidítése	CDT
%%	Egy % karakter	%

A * végű jelentések környezet függők