<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ıkQueryPerformanceCounter()
high_resolution_clock
artık Microsoft C++ uygulamasında içinsteady_clock
bir tür tanımıdır.steady_clock::time_point
typedef
chrono::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_type duration ö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 Rep iç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_info dö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_type kullanı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_time sabit listesi. |
local_info |
saat dilimine dönüştürmenin sonucu local_time hakkında düşük düzeyli bir sys_time arabirim sağlar. |
sys_info |
saat dilimine dönüştürmenin sonucu sys_time hakkında düşük düzeyli bir local_time arabirim 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_zone ad. |
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_zone time_point ile eşleştirmesi. |
zoned_traits Yapı |
Farklı bir varsayılan saat dilimini ile zoned_time iliş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_time sys_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 , , , year vb. gibi day zaman 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_point file_clock temsil 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_clock temsil edilir. |
gps_time |
için time_point<gps_clock, Duration> bir eş anlamlı. için öğesini time_point gps_clock temsil 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_clock bir 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_clock bir 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_clock temsil edilen saniye sayısı. |
tai_time |
için time_point<tai_clock, Duration> bir eş anlamlı. örneğin, tai_time<seconds> tt; değerini Duration sağlarsınız. için öğesini time_point tai_clock temsil 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 Duration sağlarsınız. için öğesini time_point utc_clock temsil 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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin