mktime()

C++ ctime mktime() funksiyasi

❮ ctime funksiyalari


Misol

Vaqt belgisi yarating va uning sana va vaqtini chop eting:

struct tm date;
time_t timestamp;

date.tm_year = 2023 - 1900; // Number of years since 1900
date.tm_mon = 12 - 1; // Number of months since January
date.tm_mday = 17;
date.tm_hour = 12;
date.tm_min = 30;
date.tm_sec = 1;
date.tm_isdst = -1;

timestamp = mktime(&date);

cout << ctime(&timestamp);
O‘zingiz sinab ko‘ring »

Ta’rif va qo‘llanilishi

mktime() funksiyasi tm strukturasidagi sana va vaqt uchun vaqt belgisi yaratadi. Struktura ifodalagan vaqt kompyuterning mahalliy vaqt mintaqasida deb hisoblanadi.

mktime() funksiyasi, shuningdek, chegaradan oshib ketgan sanalarni tuzatib va tm_wday hamda tm_yday a’zolarini to‘ldirib, tm strukturasini o‘zgartiradi.

mktime() funksiyasi <ctime> sarlavha faylida aniqlangan.

Vaqt belgisi odatda unix epoch’ga (1970-yil 1-yanvar) nisbatan soniyalar sonini ifodalaydi, lekin bu kutubxona qanday amalga oshirilganiga bog‘liq, shuning uchun undan faqat localtime() va difftime() kabi vaqt belgilari bilan ishlashga mo‘ljallangan funksiyalar bilan birga foydalanish xavfsizroq.

mktime() funksiyasi vaqt belgisini yaratish uchun tm strukturasining quyidagi a’zolaridan foydalanadi:

  • tm_sec - daqiqa ichidagi soniyalar
  • tm_min - soat ichidagi daqiqalar
  • tm_hour - kun ichidagi soat (0 dan 23 gacha)
  • tm_mday - oyning kuni
  • tm_mon - oy (yanvardan boshlab 0 dan 11 gacha)
  • tm_year - 1900-yildan beri o‘tgan yillar soni
  • tm_isdst - yozgi vaqt amalda bo‘lsa 1, amalda bo‘lmasa 0, kompyuterning vaqt mintaqasi sozlamasidan foydalanish uchun esa -1

mktime() sanalardagi to‘lib ketish (overflow) va quyi chegaradan chiqish (underflow) holatlarini ham hisobga oladi. Masalan, quyidagi kod 31-aprelni to‘g‘ri tarzda 1-may deb talqin qiladi.


Ko‘proq misollar

Misol

mktime() funksiyasi chegaradan oshib ketgan sanalarni talqin qila oladi:

struct tm date;
time_t timestamp;

date.tm_year = 2024 - 1900; // Number of years since 1900
date.tm_mon = 4 - 1; // Number of months since January
date.tm_mday = 31;
date.tm_hour = 0;
date.tm_min = 0;
date.tm_sec = 0;
date.tm_isdst = -1;

timestamp = mktime(&date);

cout << ctime(&timestamp);
O‘zingiz sinab ko‘ring »

Sintaksis

mktime(struct tm * time);

Parametr qiymatlari

Parametr Tavsif
time Majburiy. tm strukturasiga ko‘rsatkich.


Texnik tafsilotlar

Qaytaradi: Strukturada berilgan sana va vaqtni ifodalovchi time_t vaqt belgisi.

❮ ctime funksiyalari

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!