<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 padaQueryPerformanceCounter()
high_resolution_clock
sekarang merupakan typedef untuksteady_clock
Implementasi Microsoft C++,steady_clock::time_point
sekarang menjaditypedef
untukchrono::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.
kumpulan nama XML: 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 Rep templat . |
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 () 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_time sys_time . |
local_info |
Menyediakan antarmuka tingkat rendah ke informasi zona waktu tentang hasil konversi ke local_time sys_time . |
sys_info |
Menyediakan antarmuka tingkat rendah ke informasi zona waktu tentang hasil konversi ke sys_time local_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_zone time_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 , weekday year , 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. |
Operator
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_point Mewakili 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;