Ugrás a tartalomhoz

ctime library

A Wikiszótárból, a nyitott szótárból


Főnév

ctime library (tsz. ctime libraries)

  1. (informatika) A C++ ctime könyvtár egy olyan standard könyvtár, amelyet időkezelési feladatokhoz használhatunk a C++ programozási nyelvben. A ctime könyvtár lehetővé teszi számunkra, hogy különböző időpontokat és dátumokat kezeljünk, mint például az aktuális idő lekérése, időpontok összehasonlítása, vagy az idő formázása a kívánt formátumban.

A ctime könyvtár funkciói és típusa

A ctime könyvtár legfontosabb funkciói közé tartoznak az alábbiak:

  1. time(): Az time() függvény visszaadja az aktuális időt másodpercben, amely az 1970. január 1-jei (Unix epoch) kezdete óta eltelt időt jelenti. Az érték típusa time_t, ami egy egész szám, amely az idő másodperceinek számát reprezentálja. A függvény prototípusa a következő:

    time_t time(time_t* timer);
    

    Ha az argumentumot nem adjuk meg, akkor az time() a jelenlegi időt adja vissza. Ha megadunk egy timer változót, akkor az time() a másodpercek számát az adott mutatóba írja.

  2. localtime(): Az localtime() függvény a time_t típusú értéket egy tm struktúrává alakítja, amely az időt a helyi időzónához igazítva tartalmazza. A tm struktúra a következő mezőket tartalmazza:

    • tm_sec: Másodperc (0–59)
    • tm_min: Perc (0–59)
    • tm_hour: Óra (0–23)
    • tm_mday: Nap (1–31)
    • tm_mon: Hónap (0–11)
    • tm_year: Év (1900-tól számítva)
    • tm_wday: A hét napja (0–6, vasárnaptól kezdődően)
    • tm_yday: Az év napja (0–365)
    • tm_isdst: Nyári időszámítás (0 vagy 1)

    A függvény prototípusa:

    struct tm* localtime(const time_t* timep);
    
  3. gmtime(): A gmtime() hasonló a localtime() függvényhez, de nem a helyi időzónát, hanem a GMT (Greenwich Mean Time) időt használja. A függvény prototípusa:

    struct tm* gmtime(const time_t* timep);
    
  4. strftime(): Az strftime() függvény lehetővé teszi számunkra, hogy egy tm struktúrát formázott karakterlánccá alakítsunk. Használható például a dátumok és idők megjelenítésére különböző formátumokban. A függvény prototípusa a következő:

    size_t strftime(char* s, size_t max, const char* format, const struct tm* tm);
    

    A format paraméterben megadhatjuk, hogy milyen formátumban szeretnénk a dátumot vagy időt megjeleníteni. Például:

    • %Y: Év (pl. 2025)
    • %m: Hónap (01–12)
    • %d: Nap (01–31)
    • %H: Óra (00–23)
    • %M: Perc (00–59)
    • %S: Másodperc (00–59)

    Példa egy formázott dátumra:

    struct tm timeStruct = {};
    char buffer[100];
    strftime(buffer, 100, "%Y-%m-%d %H:%M:%S", &timeStruct);
    
  5. difftime(): A difftime() függvény két time_t típusú változó közötti különbséget adja vissza másodpercekben. A prototípusa:

    double difftime(time_t time1, time_t time2);
    

    A függvény pozitív értéket ad vissza, ha az első időpont későbbi, és negatívat, ha az első időpont korábbi.

  6. mktime(): Az mktime() függvény a tm struktúrából átalakít egy time_t típusú értéket, amely az adott időpont másodperceinek számát tartalmazza. Ha az idő nem érvényes (például a hónap 13-ra van állítva), akkor -1-et ad vissza. A függvény prototípusa:

    time_t mktime(struct tm* tm);
    
  7. asctime(): Az asctime() függvény a tm struktúrából egy karakterláncot generál, amely a dátumot és időt olvasható formátumban adja vissza. Például:

    char* asctime(const struct tm* timeptr);
    

    Az eredmény formátuma: "Sun Dec 31 23:59:59 2025\n".

  8. ctime(): A ctime() függvény egy time_t típusú változóból generál egy formázott karakterláncot, amely a dátumot és időt mutatja be. Például:

    char* ctime(const time_t* timep);
    

    Az eredmény formátuma szintén hasonló az asctime()-hoz, de itt nem szükséges külön tm struktúra, hanem egy time_t típusú változót adunk meg.

A ctime könyvtár használatának gyakorlati példák

A következő példa bemutatja, hogyan használhatjuk a C++ ctime könyvtárát az aktuális idő lekérésére és formázására:

#include <iostream>
#include <ctime>

int main() {
    // Aktuális idő lekérése
    time_t currentTime = time(nullptr);

    // A jelenlegi idő helyi időként
    struct tm* localTime = localtime(&currentTime);

    // A jelenlegi idő formázása
    char formattedTime[100];
    strftime(formattedTime, sizeof(formattedTime), "%Y-%m-%d %H:%M:%S", localTime);

    std::cout << "Aktuális idő: " << formattedTime << std::endl;

    // A különbség két időpont között
    time_t previousTime = currentTime - 3600;  // 1 órával korábbi idő
    double difference = difftime(currentTime, previousTime);
    std::cout << "Eltelt idő másodpercekben: " << difference << " másodperc" << std::endl;

    return 0;
}

Összegzés

A C++ ctime könyvtár számos hasznos funkciót biztosít az idő kezelése és formázása terén. Az time(), localtime(), gmtime(), strftime(), difftime(), mktime() és más függvények segítségével egyszerűen végezhetünk különböző időpontokkal kapcsolatos műveleteket. A ctime könyvtár rendkívül fontos eszköz a C++ fejlesztők számára, akik időkezeléssel kapcsolatos feladatokat szeretnének végrehajtani a programjaikban.