<chrono>

Sertakan header <chrono> standar untuk menentukan kelas dan fungsi yang mewakili dan memanipulasi durasi waktu dan instans waktu.

Dimulai di Visual Studio 2015, implementasi steady_clock telah berubah untuk memenuhi persyaratan Standar C++ untuk ketepatan dan monotonisitas:

  • steady_clock sekarang didasarkan pada QueryPerformanceCounter()
  • high_resolution_clock sekarang merupakan typedef untuk steady_clock Implementasi Microsoft C++, steady_clock::time_point sekarang menjadi typedef untuk chrono::time_point<steady_clock>. Namun, ini belum tentu terjadi untuk implementasi lain.

Persyaratan

Header:<chrono>

Legislatif regional terkadang membuat perubahan pada zona waktu, dan badan standar internasional menentukan kapan detik lompatan baru harus diperhitungkan. Database perubahan ini ditambahkan ke Windows 10. Khususnya:

Fitur Versi klien Versi server
Lompat pembaruan database kedua Windows 10 versi 1809 atau yang lebih baru Windows Server 2019 atau yang lebih baru
Dukungan zona waktu Windows 10 versi 1903/19H1 atau yang lebih baru Windows Server 2022 atau yang lebih baru

Menggunakan fasilitas zona waktu pada versi Windows yang lebih lama menghasilkan kesalahan runtime.

Ruang nama:std

Jenis calendrical

Nama Deskripsi
common_type struktur Menjelaskan spesialisasi templat common_type kelas untuk instans duration dan time_point.
day class Hari dalam sebulan. Misalnya, hari ke-25 dalam sebulan.
duration class Interval waktu.
duration_values struktur Menyediakan nilai tertentu untuk duration parameter Reptemplat .
hh_mm_ss class Membagi menjadi duration jam:menit:detik.
last_spec Digunakan untuk menunjukkan item terakhir dalam sebulan seperti hari terakhir dalam seminggu dalam sebulan (Selasa terakhir Bulan Februari 2020) atau hari terakhir dalam sebulan (hari terakhir April 2019).
leap_second class Tanggal dan nilai untuk lompatan yang disisipkan detik.
leap_second_info struktur Data yang dikembalikan oleh get_leap_second_info.
month class Sebulan dalam setahun. Misalnya, Juli.
month_day class Hari tertentu dari bulan tertentu. Misalnya, 30 Juli.
month_day_last class Hari terakhir dalam sebulan.
month_weekday class Hari kerja ke-2 dari bulan tertentu.
month_weekday_last class Hari kerja ke-2 dari bulan tertentu.
time_point class Titik waktu.
weekday class Hari dalam seminggu.
weekday_last class Hari kerja terakhir dalam sebulan.
weekday_indexed class Menggabungkan hari dalam seminggu dengan indeks yang mewakili hari kerja dalam sebulan.
year class Setahun di kalender Gregorian.
year_month class Setahun dan bulan. Hari tidak ditentukan.
year_month_day class Setahun, bulan, dan hari.
year_month_day_last class Hari terakhir dari bulan dan tahun tertentu.
year_month_weekday class Tahun, bulan, dan hari kerja ke-n tertentu dalam sebulan.
year_month_weekday_last class Tahun tertentu, bulan, dan hari kerja terakhir dalam sebulan.

Jam

Nama Deskripsi
file_clock class Alias untuk jam yang digunakan untuk std::filesystem::file_time_type, yang digunakan untuk mengekspresikan tanda waktu file.
gps_clock class Jam yang menyimpan waktu GPS. Mengukur waktu mulai dari Minggu pertama Januari 1980 pukul 00.00.00 UTC.
high_resolution_clock struktur Jam dengan periode centang nanodetik.
local_t struktur Jam semu yang digunakan sebagai argumen ke time_point templat untuk menunjukkan bahwa time_point mewakili waktu lokal.
steady_clock struktur Jam steady . Jam ini lebih disukai untuk mengukur interval waktu.
system_clock struktur Jam berdasarkan jam real-time sistem.
tai_clock class Mengukur Waktu Atom Internasional (TAI) mulai dari Kamis, 1 Januari 1958 pukul 00:00:00. Jam ini tidak memperhitungkan detik lompatan.
utc_clock class Mengukur waktu sejak 00:00:00 UTC pada hari Kamis, 1 Januari 1970. Jam ini memperkirakan detik lompatan, dan merupakan standar waktu yang digunakan di seluruh dunia.

Zona waktu

Nama Deskripsi
choose Enum yang menentukan cara menyelesaikan konversi ambigu ke local_timesys_time.
local_info Menyediakan antarmuka tingkat rendah ke informasi zona waktu tentang hasil konversi ke local_timesys_time.
sys_info Menyediakan antarmuka tingkat rendah ke informasi zona waktu tentang hasil konversi ke sys_timelocal_time.
time_zone class Semua transisi zona waktu untuk area geografis tertentu.
time_zone_link class Nama alternatif untuk time_zone.
tzdb struktur Mewakili salinan database zona waktu.
tzdb_list class Daftar tunggal database zona waktu.
zoned_time class Pasangan dan time_zonetime_point dengan presisi tertentu.
zoned_traits struktur Digunakan untuk mengaitkan zona waktu default yang berbeda dengan zoned_time, dan secara opsional memetakan nama kustom ke zona waktu default tersebut.

Pengecualian

Nama Deskripsi
ambiguous_local_time Kesalahan muncul ketika dikonversi local_time menjadi dan sys_time hasilnya ambigu.
nonexistent_local_time Kesalahan muncul ketika dikonversi local_time ke dan sys_time hasilnya adalah waktu yang tidak ada.

Fungsi

Nama Deskripsi
ceil(duration) Mengembalikan ceil objek duration sebagai jenis tertentu.
ceil(time_point) Mengembalikan ceil objek time_point sebagai jenis tertentu.
clock_cast time_point Mengonversi dari satu jam ke jam yang setara time_point untuk jam lain.
duration_cast Melemparkan duration objek ke jenis tertentu.
floor(duration) Mengembalikan floor objek duration sebagai jenis tertentu.
floor(time_point) Mengembalikan floor objek time_point sebagai jenis tertentu.
from_stream() Uraikan aliran input ke dalam salah std::chrono satu jenis waktu atau interval seperti day, , month, weekdayyear, dan sebagainya, menggunakan format yang ditentukan.
get_leap_second_info Mendapatkan structleap_second_info.
is_am hours Apakah objek adalah AM.
is_pm hours Apakah objek adalah PM.
locate_zone Mendapatkan zona waktu tertentu.
make12 Mengembalikan hours dalam bentuk 12 jam.
make24 Mengembalikan hours dalam bentuk 24 jam.
round(duration) Mengembalikan objek yang duration dibulatkan sebagai jenis tertentu.
round(time_point) Mengembalikan objek yang time_point dibulatkan sebagai jenis tertentu.
time_point_cast Melemparkan time_point objek ke jenis tertentu.

Terkait zona waktu

Nama Deskripsi
current_zone Mendapatkan zona waktu saat ini.
get_tzdb Mendapatkan entri database zona pertama kali.
get_tzdb_list Mendapatkan daftar entri database zona waktu.
reload_tzdb Mendapatkan entri database zona waktu yang diperbarui.
remote_version Memeriksa entri database zona waktu yang diperbarui.

Operators

Nama Deskripsi
operator- Mengurangi atau meniadakan berbagai <chrono> objek.
operator!= Operator ketidaksamaan yang digunakan dengan berbagai <chrono> objek.
operator modulo Operator untuk operasi modulo pada duration objek.
operator* Operator perkalian untuk duration objek.
operator/ Operator divisi untuk duration objek.
operator/ Menyediakan sintaks untuk membuat tanggal kalender.
operator+ Tambahkan ke berbagai <chrono> objek.
operator< Menentukan apakah berbagai <chrono> objek kurang dari objek lainnya.
operator<= Menentukan apakah berbagai <chrono> objek kurang dari atau sama dengan objek lainnya.
operator== Menentukan apakah berbagai <chrono> objek sama satu sama lain.
operator> Menentukan apakah berbagai <chrono> objek lebih besar dari objek lainnya.
operator>= Menentukan apakah berbagai <chrono> objek lebih besar dari atau sama dengan objek lainnya.

Typedefs

Untuk informasi selengkapnya tentang jenis rasio yang digunakan dalam typedef berikut, lihat <ratio>.

Jenis kenyamanan duration

Nama Deskripsi
typedef duration<long long, nano> nanoseconds; Sinonim untuk duration jenis yang memiliki periode centang satu miliarth (1/1.000.000.000) detik.
typedef duration<long long, micro> microseconds; Sinonim untuk duration jenis yang memiliki periode centang sejuta (1/1.000.000) detik.
typedef duration<long long, milli> milliseconds; Sinonim untuk duration jenis yang memiliki periode centang seribu (1/1.000) detik.
typedef duration<long long> seconds; Sinonim untuk duration jenis yang memiliki periode centang 1 detik.
typedef duration<int, ratio<60>> minutes; Sinonim untuk duration jenis yang memiliki periode centang 1 menit.
typedef duration<int, ratio<3600>> hours; Sinonim untuk duration jenis yang memiliki periode centang 1 jam.

Jenis kenyamanan time_point

Nama Deskripsi
file_time Sinonim untuk time_point<file_clock, Duration>. time_point Mewakili untuk file_clock. Anda menentukan Duration, misalnya, file_time<seconds> ft;.
gps_seconds Sinonim untuk gps_time<seconds>; Hitungan detik, diwakili oleh time_point yang terkait dengan gps_clock.
gps_time Sinonim untuk time_point<gps_clock, Duration>. time_point Mewakili untuk gps_clock. Anda menentukan Duration, misalnya, gps_time<milliseconds> gps;.
local_days Sinonim untuk local_time<days>. Hitungan hari, diwakili oleh time_point yang tidak terkait dengan zona waktu apa pun.
local_seconds Sinonim untuk local_time<seconds>.
local_time Sinonim untuk time_point<local_t, Duration>. time_point Mewakili untuk waktu lokal yang belum terkait dengan zona waktu. Anda menentukan Duration, misalnya, local_time<seconds> lt;. A local_time adalah waktu lokal di suatu tempat. Ini bukan waktu lokal jam komputer Anda saat ini. Hanya ketika Anda memasangkan local_time dengan time_zone do Anda mendapatkan titik waktu yang dapat dikonversi ke waktu UTC, atau waktu di zona waktu tertentu.
sys_days Sinonim untuk sys_time<days>. Hitungan hari sejak zaman system_clock, diwakili oleh time_point yang terkait dengan system_clock.
sys_seconds Sinonim untuk sys_time<seconds>. Jumlah detik non-lompatan sejak epoch system_clock (1 Jan 1970 00:00:00 UTC), diwakili oleh time_point yang terkait dengan system_clock.
sys_time Sinonim untuk time_point<system_clock, Duration>. Anda menentukan Duration, misalnya, sys_time<seconds> st;. Mewakili yang time_point dikembalikan dari system_clock::now(). Ini mewakili waktu Unix, yang mendekati waktu UTC.
tai_seconds Sinonim untuk tai_time<seconds>. Hitungan detik, diwakili oleh time_point yang terkait dengan tai_clock.
tai_time Sinonim untuk time_point<tai_clock, Duration>. Anda menyediakan Duration, misalnya, tai_time<seconds> tt;. time_point Mewakili untuk tai_clock.
utc_seconds Sinonim untuk utc_time<seconds>;
utc_time Sinonim untuk time_point<utc_clock, Duration>. Anda menyediakan Duration, misalnya, utc_time<seconds> ut;. time_pointMewakili untuk utc_clock.

Jenis sifat

Nama Deskripsi
clock_time_conversion Sifat yang menentukan cara mengonversi time_point dari satu jam ke jam lainnya.
is_clock Periksa apakah jenis adalah jam.
treat_as_floating_point Periksa apakah duration dapat dikonversi ke yang lain duration yang memiliki periode centang yang berbeda.

Harfiah

(C++11) Header <chrono> menentukan literal yang ditentukan pengguna berikut yang dapat Anda gunakan untuk kenyamanan, keamanan jenis, dan ketahanan kode Anda yang lebih besar. Literal ini didefinisikan dalam literals::chrono_literals namespace sebaris dan berada dalam cakupan saat std::chrono berada dalam cakupan.

Deklarasi Deskripsi
hours operator "" h(unsigned long long Val) Menentukan jam sebagai nilai integral.
duration<double, ratio<3600>> operator "" h(long double Val) Menentukan jam sebagai nilai floating-point.
minutes (operator "" min)(unsigned long long Val) Menentukan menit sebagai nilai integral.
duration<double, ratio<60>> (operator "" min)( long double Val) Menentukan menit sebagai nilai floating-point.
seconds operator "" s(unsigned long long Val) Menentukan menit sebagai nilai integral.
duration<double> operator "" s(long double Val) Menentukan detik sebagai nilai floating-point.
milliseconds operator "" ms(unsigned long long Val) Menentukan milidetik sebagai nilai integral.
duration<double, milli> operator "" ms(long double Val) Menentukan milidetik sebagai nilai floating-point.
microseconds operator "" us(unsigned long long Val) Menentukan mikrostik sebagai nilai integral.
duration<double, micro> operator "" us(long double Val) Menentukan mikrodetik sebagai nilai floating-point.
nanoseconds operator "" ns(unsigned long long Val) Menentukan nanodetik sebagai nilai integral.
duration<double, nano> operator "" ns(long double Val) Menentukan nanodetik sebagai nilai floating-point.

Contoh berikut menunjukkan cara menggunakan <chrono> literal:

constexpr auto day = 24h;
constexpr auto week = 24h* 7;
constexpr auto my_duration_unit = 108ms;

Baca juga

Referensi File Header