Aracılığıyla paylaş


<chrono>

Zaman sürelerini ve zaman anlık zamanlarını temsil eden ve işleyen sınıfları ve işlevleri tanımlamak için standart üst bilgiyi <chrono> ekleyin.

Visual Studio 2015'den başlayarak uygulaması, steady_clock kararlılık ve monotonluk için C++ Standart gereksinimlerini karşılayacak şekilde değişti:

  • steady_clock artık QueryPerformanceCounter()
  • high_resolution_clockartık Microsoft C++ uygulamasında için steady_clock bir tür tanımıdır. steady_clock::time_pointtypedefchrono::time_point<steady_clock> Ancak, bu durum diğer uygulamalar için geçerli olmayabilir.

Gereksinimler

Üstbilgi:<chrono>

Bölgesel yasamalar zaman zaman saat dilimlerinde değişiklik yapar ve uluslararası standartlar gövdesi yeni artık saniyelerin ne zaman hesaba bağlanacağını belirtir. Bu değişikliklerin bir veritabanı Windows 10'a eklendi. Özellikle:

Özellik İstemci sürümü Sunucu sürümü
Artık ikinci veritabanı güncelleştirmeleri Windows 10 sürüm 1809 veya üzeri Windows Server 2019 veya üzeri
Saat dilimi desteği Windows 10 sürüm 1903/19H1 veya üzeri Windows Server 2022 veya üzeri

Windows'un eski sürümlerinde saat dilimi olanaklarının kullanılması çalışma zamanı hatasına neden olur.

Ad alanı:std

Arka uç türleri

Ad Tanım
common_type Yapı ve time_pointörneklendirmeleri için sınıf şablonunun common_typeduration özelleştirmelerini açıklar.
day sınıfı Ayın bir günü. Örneğin, ayın 25. günü.
duration sınıfı Bir zaman aralığı.
duration_values Yapı şablon parametresi Repiçin duration belirli değerler sağlar.
hh_mm_ss sınıfı bir'i duration hours:minutes:seconds olarak böler.
last_spec Bir ayın son günü (Şubat 2020'nin son Salı günü) veya ayın son günü (Nisan 2019'un son günü) gibi bir ayın son öğesini belirtmek için kullanılır.
leap_second sınıfı Eklenen artık saniye için tarih ve değer.
leap_second_info Yapı tarafından get_leap_second_infodöndürülen veriler.
month sınıfı Yılın bir ayı. Örneğin, Temmuz.
month_day sınıfı Belirli bir ayın belirli bir günü. Örneğin, 30 Temmuz.
month_day_last sınıfı Ayın son günü.
month_weekday sınıfı Belirli bir ayın n. hafta içi günü.
month_weekday_last sınıfı Belirli bir ayın n. hafta içi günü.
time_point sınıfı Zaman içinde bir nokta.
weekday sınıfı Haftanın bir günü.
weekday_last sınıfı Ayın son haftası.
weekday_indexed sınıfı Haftanın gününü ayın haftanın gününü temsil eden bir dizinle birleştirir.
year sınıfı Gregoryen takvimde bir yıl.
year_month sınıfı Bir yıl ve ay. Gün belirtilmedi.
year_month_day sınıfı Bir yıl, ay ve gün.
year_month_day_last sınıfı Belirli bir ayın ve yılın son günü.
year_month_weekday sınıfı Belirli bir yıl, ay ve ayın n. hafta içi.
year_month_weekday_last sınıfı Belirli bir yıl, ay ve ayın son hafta içi.

Saat

Ad Tanım
file_clock sınıfı için kullanılan ve dosya zaman damgalarını ifade etmek için std::filesystem::file_time_typekullanılan saatin diğer adı.
gps_clock sınıfı GPS süresini tutan bir saat. Ocak 1980'in ilk Pazar günü saat 00:00:00 UTC'den başlayarak saati ölçer.
high_resolution_clock Yapı Nanosaniyelik değer aralığına sahip bir saat.
local_t Yapı Yerel saati temsil ettiğini time_point belirtmek için şablona time_point bağımsız değişken olarak kullanılan sahte saat.
steady_clock Yapı Bir steady saat. Bu saat, zaman aralıklarını ölçmek için tercih edilir.
system_clock Yapı Sistemin gerçek zamanlı saatini temel alan bir saat.
tai_clock sınıfı 1 Ocak 1958 Perşembe saat 00:00:00'dan itibaren Uluslararası Atomik Zamanı (TAI) ölçer. Bu saat artık saniyeleri dikkate almaz.
utc_clock sınıfı 1 Ocak 1970 Perşembe günü saat 00:00:00 UTC'den bu yana geçen süreyi ölçer. Bu saat artık saniyeleri hesaplar ve dünya genelinde kullanılan saat standardıdır.

Saat dilimleri

Ad Tanım
choose bir öğesine belirsiz dönüştürme işleminin local_time nasıl çözümlendiğini belirten bir sys_timesabit listesi.
local_info saat dilimine dönüştürmenin sonucu local_time hakkında düşük düzeyli bir sys_timearabirim sağlar.
sys_info saat dilimine dönüştürmenin sonucu sys_time hakkında düşük düzeyli bir local_timearabirim sağlar.
time_zone sınıfı Belirli bir coğrafi alan için tüm saat dilimi geçişleri.
time_zone_link sınıfı için alternatif bir time_zonead.
tzdb Yapı Saat dilimi veritabanının bir kopyasını temsil eder.
tzdb_list sınıfı Saat dilimi veritabanlarının tek bir listesi.
zoned_time sınıfı Belirtilen duyarlıkla ve time_zonetime_point ile eşleştirmesi.
zoned_traits Yapı Farklı bir varsayılan saat dilimini ile zoned_timeilişkilendirmek ve isteğe bağlı olarak özel bir adı bu varsayılan saat dilimiyle eşlemek için kullanılır.

Özel durumlar

Ad Tanım
ambiguous_local_time a, a'ya local_timesys_time dönüştürüldüğünde ve sonuç belirsiz olduğunda oluşan hata.
nonexistent_local_time bir local_time öğesine dönüştürüldüğünde sys_time ve sonuç mevcut olmayan bir zaman olduğunda oluşan hata.

İşlevler

Ad Tanım
ceil(duration) ceil Bir duration nesnenin değerini belirtilen tür olarak döndürür.
ceil(time_point) ceil Bir time_point nesnenin değerini belirtilen tür olarak döndürür.
clock_cast Bir time_point saati başka bir saat için eşdeğere time_point dönüştürür.
duration_cast Nesneyi duration belirtilen bir türe dönüştürür.
floor(duration) floor Bir duration nesnenin değerini belirtilen tür olarak döndürür.
floor(time_point) floor Bir time_point nesnenin değerini belirtilen tür olarak döndürür.
from_stream() Giriş akışını, belirtilen biçimi kullanarak , , , yearvb. gibi dayzaman veya aralık türlerinden birinde std::chrono ayrıştırınweekday. month
get_leap_second_info Bir leap_second_info yapı alır.
is_am Nesnenin hours AM olup olmadığı.
is_pm Nesnenin hours PM olup olmadığı.
locate_zone Belirtilen saat dilimini alır.
make12 hours 12 saatlik bir form döndürür.
make24 hours 24 saatlik bir form döndürür.
round(duration) duration Belirtilen tür olarak yuvarlanmış bir nesne döndürür.
round(time_point) time_point Belirtilen tür olarak yuvarlanmış bir nesne döndürür.
time_point_cast Nesneyi time_point belirtilen bir türe dönüştürür.

Saat dilimiyle ilgili

Ad Tanım
current_zone Geçerli saat dilimini alır.
get_tzdb İlk saat dilimi veritabanı girişini alır.
get_tzdb_list Saat dilimi veritabanı girdilerinin listesini alır.
reload_tzdb Güncelleştirilmiş bir saat dilimi veritabanı girdisi alır.
remote_version Güncelleştirilmiş bir saat dilimi veritabanı girişini denetler.

İşleçler

Ad Tanım
operator- Çeşitli <chrono> nesneleri çıkarın veya çıkarın.
operator!= Çeşitli <chrono> nesnelerle kullanılan eşitsizlik işleci.
operator modulo Nesneler üzerinde duration modulo işlemleri için işleç.
operator* Nesneler için duration çarpma işleci.
operator/ Nesneler için duration bölme işleci.
operator/ Takvim tarihleri oluşturmak için söz dizimi sağlar.
operator+ Çeşitli <chrono> nesnelere ekleyin.
operator< Çeşitli <chrono> nesnelerin başka bir nesneden küçük olup olmadığını belirler.
operator<= Çeşitli <chrono> nesnelerin başka bir nesneden küçük veya buna eşit olup olmadığını belirler.
operator== Çeşitli <chrono> nesnelerin birbirine eşit olup olmadığını belirler.
operator> Çeşitli <chrono> nesnelerin başka bir nesneden büyük olup olmadığını belirler.
operator>= Çeşitli <chrono> nesnelerin başka bir nesneden büyük veya buna eşit olup olmadığını belirler.

Tür tanımları

Aşağıdaki tür tanımlarında kullanılan oran türleri hakkında daha fazla bilgi için bkz <ratio>. .

Kolaylık duration türleri

Ad Tanım
typedef duration<long long, nano> nanoseconds; Saniyenin bir duration milyarda biri (1/1.000.000.000) kene dönemine sahip bir tür için eş anlamlı.
typedef duration<long long, micro> microseconds; Saniyenin bir milyonda biri duration (1/1.000.000) değer aralığına sahip bir tür için eş anlamlı.
typedef duration<long long, milli> milliseconds; Saniyenin binde biri duration (1/1.000) değer aralığına sahip bir tür için eş anlamlı.
typedef duration<long long> seconds; 1 saniyelik bir kene süresi olan bir duration tür için eş anlamlı.
typedef duration<int, ratio<60>> minutes; 1 dakikalık bir kene süresi olan bir duration tür için eş anlamlı.
typedef duration<int, ratio<3600>> hours; 1 saatlik bir kene süresi olan bir duration tür için eş anlamlı.

Kolaylık time_point türleri

Ad Tanım
file_time için time_point<file_clock, Duration>bir eş anlamlı. için öğesini time_pointfile_clocktemsil eder. değerini belirtirsiniz Duration, örneğin, file_time<seconds> ft;.
gps_seconds saniye sayısı için gps_time<seconds>; bir eş anlamlı, ile ilişkilendirilmiş bir time_point ile gps_clocktemsil edilir.
gps_time için time_point<gps_clock, Duration>bir eş anlamlı. için öğesini time_pointgps_clocktemsil eder. değerini belirtirsiniz Duration, örneğin, gps_time<milliseconds> gps;.
local_days için local_time<days>bir eş anlamlı. Herhangi bir saat dilimiyle ilişkili olmayan bir time_point ile temsil edilen gün sayısı.
local_seconds için local_time<seconds>bir eş anlamlı.
local_time için time_point<local_t, Duration>bir eş anlamlı. time_point Henüz bir saat dilimiyle ilişkilendirilmemiş bir yerel saat için öğesini temsil eder. değerini belirtirsiniz Duration, örneğin, local_time<seconds> lt;. Alocal_time, bir yerlerde yerel bir saattir. Bilgisayarınızın saatinin geçerli yerel saati değildir. Yalnızca bir local_time ile time_zone eşleştirdiğinizde UTC saatine veya belirli bir saat dilimindeki saate dönüştürülebilecek bir nokta elde edersiniz.
sys_days için sys_time<days>bir eş anlamlı. ile ilişkilendirilmiş system_clockbir time_point ile temsil edilen system_clock döneminin üzerinden geçen gün sayısı.
sys_seconds için sys_time<seconds>bir eş anlamlı. ile ilişkili system_clockbir time_point ile temsil edilen (1 Ocak 1970 00:00:00 UTC) döneminin system_clock bu yana artık olmayan saniye sayısı.
sys_time için time_point<system_clock, Duration>bir eş anlamlı. değerini belirtirsiniz Duration, örneğin, sys_time<seconds> st;. tarafından system_clock::now()döndürüleni time_point temsil eder. Yaklaşık UTC saati olan Unix saatini temsil eder.
tai_seconds için tai_time<seconds>bir eş anlamlı. ile ilişkili bir time_point ile tai_clocktemsil edilen saniye sayısı.
tai_time için time_point<tai_clock, Duration>bir eş anlamlı. örneğin, tai_time<seconds> tt;değerini Durationsağlarsınız. için öğesini time_pointtai_clocktemsil eder.
utc_seconds için bir eş anlamlı utc_time<seconds>;
utc_time için time_point<utc_clock, Duration>bir eş anlamlı. örneğin, utc_time<seconds> ut;değerini Durationsağlarsınız. için öğesini time_pointutc_clocktemsil eder.

Tür özellikleri

Ad Tanım
clock_time_conversion Bir saatin bir saatten diğerine nasıl dönüştürüldüğünü time_point belirten bir özellik.
is_clock Türün saat olup olmadığını denetleyin.
treat_as_floating_point bir duration öğesinin farklı bir değer aralığına sahip başka duration bir değer aralığına dönüştürülip dönüştürülemediğini denetleyin.

Değişmez Değerler

(C++11) Üst bilgi, <chrono> kodunuzun daha rahat olması, tür güvenliği ve sürdürülebilirliği için kullanabileceğiniz aşağıdaki kullanıcı tanımlı değişmez değerleri tanımlar. Bu değişmez değerler satır içi ad alanında literals::chrono_literals tanımlanır ve kapsam içinde olduğunda std::chrono kapsam içindedir.

Bildirim Tanım
hours operator "" h(unsigned long long Val) Saatleri tam sayı değeri olarak belirtir.
duration<double, ratio<3600>> operator "" h(long double Val) Saatleri kayan nokta değeri olarak belirtir.
minutes (operator "" min)(unsigned long long Val) Dakikaları tam sayı değeri olarak belirtir.
duration<double, ratio<60>> (operator "" min)( long double Val) Dakikaları kayan nokta değeri olarak belirtir.
seconds operator "" s(unsigned long long Val) Dakikaları tam sayı değeri olarak belirtir.
duration<double> operator "" s(long double Val) Saniyeleri kayan nokta değeri olarak belirtir.
milliseconds operator "" ms(unsigned long long Val) Milisaniyeleri tam sayı değeri olarak belirtir.
duration<double, milli> operator "" ms(long double Val) Milisaniyeleri kayan nokta değeri olarak belirtir.
microseconds operator "" us(unsigned long long Val) Mikrosaniyeleri tam sayı değeri olarak belirtir.
duration<double, micro> operator "" us(long double Val) Mikrosaniyeleri kayan nokta değeri olarak belirtir.
nanoseconds operator "" ns(unsigned long long Val) Nanosaniyeleri tam sayı değeri olarak belirtir.
duration<double, nano> operator "" ns(long double Val) Nanosaniyeleri kayan nokta değeri olarak belirtir.

Aşağıdaki örneklerde değişmez değerlerin nasıl kullanılacağı <chrono> gösterilmektedir:

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

Ayrıca bkz.

Üst Bilgi Dosyaları Başvurusu