Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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_clockartıkQueryPerformanceCounter() -
high_resolution_clockartık Microsoft C++ uygulamasında içinsteady_clockbir 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
| Veri Akışı Adı | Açıklama |
|---|---|
common_type Yapı |
ve common_typeörneklendirmeleri için sınıf şablonunun durationtime_point ö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 durationiçin Rep 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
| Veri Akışı Adı | Açıklama |
|---|---|
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
| Veri Akışı Adı | Açıklama |
|---|---|
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
| Veri Akışı Adı | Açıklama |
|---|---|
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
| Veri Akışı Adı | Açıklama |
|---|---|
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 , , , std::chronovb. gibi dayzaman veya aralık türlerinden birinde month ayrıştırınweekday. year |
get_leap_second_info |
Bir leap_second_info yapı alır. |
is_am |
Nesnenin hours 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
| Veri Akışı Adı | Açıklama |
|---|---|
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
| Veri Akışı Adı | Açıklama |
|---|---|
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
| Veri Akışı Adı | Açıklama |
|---|---|
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
| Veri Akışı Adı | Açıklama |
|---|---|
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ş time_pointbir system_clock 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 time_pointdöndürüleni system_clock::now() 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, Durationdeğerini tai_time<seconds> tt;sağ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, Durationdeğerini utc_time<seconds> ut;sağlarsınız. için öğesini time_pointutc_clocktemsil eder. |
Tür özellikleri
| Veri Akışı Adı | Açıklama |
|---|---|
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 | Açıklama |
|---|---|
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;