[[:oktatas:programozás:cpp|< CPP]]
====== Dátum és idő ======
* **Szerző:** Sallai András
* Copyright (c) Sallai András, 2011
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]]
* Web: https://szit.hu
===== Példa =====
#include
#include
#include
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
#include
using namespace std;
int main()
{
time_t ido;
time(&ido);
cout << "Idő: " << ctime(&ido) << endl;
}
#include
#include
using namespace std;
int main()
{
time_t ido;
time(&ido);
cout << "Idő: " << asctime(localtime(&ido)) << endl;
}
===== Formázott kiírás =====
#include
#include
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