C ++ tarix vaxtı

C ++, məlumat növlərini C dilindən zamanla alır. Bu məlumat növlərini proqramınızda istifadə etmək üçün daxil etməlisiniz ctime başlıq:

#include <ctime>

Bu başlıq zaman təqdimatı üçün istifadə olunan 4 məlumat növü təmin edir:

  • saat_t - Saat növü
  • ölçüsü_t - İmzasız ayrılmaz tip
  • vaxt_t - Vaxt növü
  • quruluş tm - Zaman quruluşu

İlk 3 məlumat növü vaxtı tam ədədi şəklində təmsil edir və zamanın çox istifadə olunan təqdimatını əldə etmək üçün bu tam ədədləri çevirməlisiniz.
Ən çox istifadəçi dostu zaman təqdimetmə yolu var struktur tm. Bir quruluş nədir C ++ Məlumat Strukturları . Bu tm vaxtı təmsil edən aşağıdakı sahələrə malikdir:

 Sahə  növü   Məna   Silsilə
 tm_sec  int  seconds  0-61
 tm_dəq  int  dəqiqə  0-59
 tm_saat  int  saat təlim proqramlarını əhatə etməkdədir  0-23
 tm_mday  int  ayın günü  1-31
 tm_mon  int  yanvar ayından bəri aylar  0-11
 tm_il  int  1900-cü ildən bəri
 tm_wday  int  Bazar günündən bəri günlər  0-6
 tm_yday  int  1 yanvardan bəri günlər  0-365

 

Bir növ dəyişən istifadə etmək tm hər hansı bir dəyişəni elan etdiyiniz şəkildə elan edə bilərsiniz:

tm my_time;

The ctime header məlumat növləri ilə işləmək üçün bir sıra faydalı funksiyalar təqdim edir:

  • char * asctime (const struct tm * timeptr); göstəriciyə çevirir struktur tm bir sıra işarələrə
  • char * ctime (const time_t * timer); a dəyərini çevirir vaxt_t Www Mmm dd hh: mm: ss yyyy (Www - iş günü, Mmm - ay, dd - həftənin günü, dd - tarix, mm - dəqiqə, ss- saniyə, hh - saat, yyyy - formatında bir cərgə dəyərinin dəyəri il).
  • struct tm * gmtime (const time_t * timer); çevirmək a vaxt_t dəyəri struktur tm  UTC vaxtı kimi.
  • struct tm * localtime (const time_t * timer); çevirmək a vaxt_t dəyəri struktur tm  yerli vaxt formatında.
  • size_t strftime (char * ptr, size_t maxsize, const char * format, const struct tm * timeptr); bu funksiyalar zaman dəyərini kopyalayır saat saatı ilə görə format char bir sıra daxil ptr maksimum ölçüdə maksimum.

Bu funksiya üçün əsas format göstəriciləri bunlardır:

 Göstərici  Məna
 %a  Qısaldılmış iş günü adı
 %A  Tam iş günü adı
 %b  Qısaldılmış ay adı
 %B  Tam ay adı
 %c  Tarix və vaxt təmsilçiliyi
 %C  İlin 100-ə bölünməsi və tam ədədə qədər kəsilməsi (00-99)
 %d  Ayın günü 2 rəqəmlə (01-31)
 %D  Qısa MM / DD / YY tarixi,% m /% d /% y-ə bərabərdir
 %e  Ayın günü boşluqla doldurulur (1-31)
 %F  Qısa YYYY-MM-DD tarixi,% Y-% m-% d-yə bərabərdir
 %g  Həftə əsaslı il, son iki rəqəm (00-99)
 %G  Həftə əsaslı il
 %h  Qısaldılmış ay adı (% b ilə eyni)
 %H  24 saat formatında saat (00-23)
 %I  12 saat formatında saat (01-12)
 %j  İlin günü (001-366)
 %m  Onluq rəqəm kimi ay (01-12)
 %M  Dəqiqə (00-59)
 %p  AM və ya PM təyinatı
 %R  24 saatlıq HH: MM vaxtı,% H:% M-ə bərabərdir
 %S  İkinci (00-61)

 

  • clock_t clock (void); - proqramın başlanğıcından sərf etdiyi vaxtı qaytarır. Qaytarma dəyəri saat işarələrinin sayındadır. CLOCKS_PER_SEC sabitindən istifadə edərək bu dəyəri saniyələrə çevirə bilərsiniz.
  • time_t mktime (struct tm * timeptr); - örtüklər tm quruluşu  üçün vaxt_t.
  • time_t time (time_t* timer); - cari vaxtı formatında alır  vaxt_t bir taymer istifadə edərək. Bu funksiyanın parametri olaraq NULL istifadə edə bilərsiniz: vaxt (NULL)

Bu funksiyaların müasir kompilyatorlarla istifadəsi bir səhv mesajına səbəb ola bilər:

"səhv C4996: 'ctime': Bu funksiya və ya dəyişən təhlükəli ola bilər. Bunun əvəzinə ctime_s istifadə etməyi düşünün. Amortizasiyanı deaktiv etmək üçün _CRT_SECURE_NO_WARNINGS istifadə edin. ”

Proqramınızın təhlükəsiz olduğuna əminsəniz, aşağıdakı direktivi istifadə edərək bu səhvi deaktiv edə bilərsiniz:

#pragma warning(disable : 4996)

Bu təsvir olunan funksiyaları istifadə edərək zamanla necə işləyə biləcəyinizi göstərən sadə bir demo proqramıdır:

//get the starting value of clock
clock_t start = clock();
tm* my_time;


//get current time in format of time_t
time_t t = time(NULL);


//show the value stored in t
cout << "Value of t " << t << endl;

//convert time_t to char*
char* charTime = ctime(&t);

//display current time
cout << "Now is " << charTime << endl;

//convert time_t to tm
my_time = localtime(&t);

//get only hours and minutes
char* hhMM = new char[6];
strftime(hhMM, 6, "HH:MM", my_time);

//show a part of tm struct
//the operator -> is used to access members of the tm struct. It's described in the data structures topic
cout << "Year " << 1900 + my_time->tm_year << endl;
cout << "Month " << my_time->tm_mon << endl;
clock_t end = clock();
clock_t exec = end - start;
cout << "Program is executed in " << exec << " clocks or "
<< 1000 * exec / CLOCKS_PER_SEC << " milliseconds" << endl;
cin.ignore();

Bu proqramın nəticəsi:

T 1417965525 dəyəri
İndi 07 Dekabr 17 18:45:2014 Bazar ertəsi
Il 2014
Ay 11
Proqram 6 saat və ya 6 milisaniyədə icra olunur

“C++ Date Time” haqqında 1 fikir

  1. 시간 날짜 표시 C 언어 소스

    2022년03월20일 (일) 오전02시41분47.643초 이런 형식

    //////////////////////

    #daxildir // SYSTEMTIME , GetLocalTime() və GetSystemTime() təyin etmək üçün istifadə edin
    #daxildir // printf() üçün (əks halda WinAPI ekvivalentindən istifadə edilə bilər)

    int main(void) { // Və ya hər hansı digər WinAPI giriş nöqtəsi (məsələn, WinMain/wmain)
      SYSTEMTIME t; // SYSTEMTIME strukturunu elan edin

      GetLocalTime(&t); // İstifadə oluna bilməsi üçün strukturu doldurun
      char* həftə[7] = {“일”,”월”,”화”,”수”,”목”,”금”,”토”};
      char* aft[2] = {“오전”,”오후”};
      int ampm;
      // UTC vaxtını əldə etmək üçün GetSystemTime(&t) istifadə edin 
      əgər (t.saat < 12) {
      ampm=0;
      }
      else { // günortadan sonra
      ampm=1;
      }

    printf(“%d년%02d월%02d일 (%s) %s%02d시%02d분%02d.%02d초”, t.wYear, t.wMonth, t.wDay, week[t.wDayOfWeek] , aft[ampm], t.wHour, t.wMinute, t.wSecond, t.wMilliseconds); 

      0 qaytarır;
    }

    //////////////////////

    명령 CMD 창을 열고

    GCC 컴파일러가 있는 폴더를 PATH 로 지정

    PATH=C:\Program Files\mingw-w64\x86_64-8.1.0-win32-seh-rt_v6-rev0\mingw64\bin

    C:\Users\compu\Desktop\압축 푼 폴더> gcc -o y.exe ymdtime.c

    C:\Users\compu\Desktop\압축 푼 폴더> y
    2022년03월20일 (일) 오전02시41분47.643초

    chcp 65001 명령을 써서 kodu 를 변경하셔서 사용하시려면
    소스 코드를 UTF-8 로 바꾼 후 저장하고 다시 컴파일해야 합니다.

    chp 65001
    Aktiv kod səhifəsi: 65001

    C:\Users\compu\Desktop\TIME>time.exe
    2022년03월21일 (월) 오전02시03분42.450초

    시간 표시 결과를 변수에 넣는 법
    ※ “tokens=*” %a / ymdtime=%a
    oyun bir 1 oyun. %aa %myvar 이렇게 1자 넘으면 안 됩니다.

    파일명.CMD 명령어 배치 파일에서는 이렇게 %%a 라고 써야 합니다.
    /f üçün “token=*” %%a ('%%SETIDFY%% -format “%%wx%%h” %SETRSLT_CNT_IMG%') üçün GETWH=%%a təyin edin

    PATH=%PATH%;D:\2DƏFƏ

    /f “tokens=*” %a üçün ('ymdtime.exe') ymdtime=%a təyin edin

    SET TM=한국시각 %ymdtime%

    cavab

Şərh yaz

Translate »