[[: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