Aracılığıyla paylaş


time_get Sınıfı

Sınıf şablonu, tür CharType dizilerinin saat değerlerine dönüşümlerini denetlemek için yerel ayar model olarak görev yapabilecek bir nesneyi açıklar.

Sözdizimi

template <class CharType,
    class InputIterator = istreambuf_iterator<CharType>>
class time_get : public time_base;

Parametreler

CharType
Bir program içindeki karakterleri kodlamak için kullanılan tür.

InputIterator
Saat değerlerinin okunacağı yineleyici.

Açıklamalar

Herhangi bir yerel ayar modelinde olduğu gibi, statik nesne kimliğinde depolanmış bir başlangıç sıfır değeri bulunur. Depolanan değerine erişmeye yönelik ilk deneme, kimlikte benzersiz bir pozitif değer depolar.

Oluşturucular

Oluşturucu Açıklama
time_get türündeki time_getnesneler için oluşturucu.

Tür tanımları

Tür adı Açıklama
char_type Bir yerel ayar tarafından kullanılan bir karakteri tanımlamak için kullanılan tür.
iter_type Bir giriş yineleyiciyi açıklayan tür.

Üye işlevleri

Üye işlevi Açıklama
date_order Bir model tarafından kullanılan tarih düzenini döndürür.
do_date_order Bir model tarafından kullanılan tarih düzenini döndürmek için çağrılan korumalı sanal üye işlevi.
do_get Karakter verilerini okur ve bir saat değerine dönüştürür.
do_get_date Dizeyi için tanımlayıcı tarafından x üretilen tarih olarak ayrıştırmak için strftimeçağrılan korumalı bir sanal üye işlevi.
do_get_monthname Bir dizeyi ayın adı olarak ayrıştırmak için çağrılan korumalı sanal üye işlevi.
do_get_time Dizeyi için tanımlayıcı tarafından X üretilen tarih olarak ayrıştırmak için strftimeçağrılan korumalı bir sanal üye işlevi.
do_get_weekday Bir dizeyi haftanın günü adı olarak ayrıştırmak için çağrılan korumalı sanal üye işlevi.
do_get_year Bir dizeyi yılın adı olarak ayrıştırmak için çağrılan korumalı sanal üye işlevi.
get Karakter verilerinin bir kaynağından okur ve bu verileri saat yapı biriminde depolanan bir saate dönüştürür.
get_date Dizeyi için tanımlayıcı strftimetarafından x üretilen tarih olarak ayrıştırır.
get_monthname Bir dizeyi ayın adı olarak ayrıştırır.
get_time Dizeyi için tanımlayıcı strftimetarafından X üretilen tarih olarak ayrıştırır.
get_weekday Bir dizeyi haftanın gününün adı olarak ayrıştırır.
get_year Bir dizeyi yılın adı olarak ayrıştırır.

Gereksinimler

Üst bilgi:<yerel ayar>

Ad alanı: std

time_get::char_type

Bir yerel ayar tarafından kullanılan bir karakteri tanımlamak için kullanılan tür.

typedef CharType char_type;

Açıklamalar

Türü, CharType şablon parametresinin eş anlamlısıdır.

time_get::d ate_order

Bir model tarafından kullanılan tarih düzenini döndürür.

dateorder date_order() const;

Dönüş Değeri

Model tarafından kullanılan tarih sırası.

Açıklamalar

Üye işlevi do_date_order döndürür.

Örnek

// time_get_date_order.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
#include <time.h>
using namespace std;
void po( char *p )
{
   locale loc( p );

   time_get <char>::dateorder order = use_facet <time_get <char> >( loc ).date_order ( );
   cout << loc.name( );
   switch (order){
      case time_base::dmy: cout << "(day, month, year)" << endl;
      break;
      case time_base::mdy: cout << "(month, day, year)" << endl;
      break;
      case time_base::ydm: cout << "(year, day, month)" << endl;
      break;
      case time_base::ymd: cout << "(year, month, day)"<< endl;
      break;
      case time_base::no_order: cout << "(no_order)"<< endl;
      break;
   }
}

int main( )
{
   po( "C" );
   po( "german" );
   po( "English_Britain" );
}
C(month, day, year)
German_Germany.1252(day, month, year)
English_United Kingdom.1252(day, month, year)

time_get::d o_date_order

Bir model tarafından kullanılan tarih düzenini döndürmek için çağrılan korumalı sanal üye işlevi.

virtual dateorder do_date_order() const;

Dönüş Değeri

Model tarafından kullanılan tarih sırası.

Açıklamalar

Sanal korumalı üye işlevi, time_base::d ateorder türünde bir değer döndürür. Bu değer, tarih bileşenlerinin do_get_date tarafından eşleştirilme sırasını açıklar. Bu uygulamada değer, 2 Aralık 1979 biçimindeki tarihlere karşılık gelen time_base::mdy şeklindedir.

Örnek

çağrısı do_date_orderyapan date_order örneğine bakın.

time_get::d o_get

Karakter verilerini okur ve bir saat değerine dönüştürür. Bir dönüştürme tanımlayıcısı ve değiştirici kabul eder.

virtual iter_type
    do_get(
iter_type first,
    iter_type last,
    ios_base& iosbase,
    ios_base::iostate& state,
    tm* ptm,
    char fmt,
    char mod) const;

Parametreler

birinci
Dönüştürülecek sıranın başlangıcını gösteren bir Giriş yineleyicisi.

son
Dizinin sonunu gösteren bir Giriş yineleyicisi.

iosbase
Akış nesnesi.

state
iosbase'de uygun bit maskesi öğelerinin hataları gösterecek şekilde ayarlandığı bir alan.

ptm
Zamanın depolandığı zaman yapısının işaretçisi.

Fmt
Dönüştürme tanımlayıcısı karakteri.

mod
İsteğe bağlı değiştirici karakter.

Dönüş Değeri

İlk dönüştürülmemiş öğeyi belirten bir yineleyici döndürür. Dönüştürme hatası ilk olarak içinde ayarlanıp ios_base::failbit döndürülüyor.state

Açıklamalar

Sanal üye işlevi, bir veya daha fazla üyesinde *ptdepolanan değerleri belirlemek için [first, last) aralığındaki bir veya daha fazla giriş öğesini dönüştürür ve atlar. Dönüştürme hatası ilk olarak içinde ayarlanıp ios_base::failbit döndürülüyor.state Aksi takdirde işlev, ilk dönüştürülmemiş öğeyi gösteren bir yineleyici döndürür.

Dönüştürme tanımlayıcıları şunlardır:

'a'veya 'A' -- time_get::get_weekday ile aynı şekilde davranır.

'b', 'B'veya 'h' -- time_get::get_monthname ile aynı şekilde davranır.

'c' -- ile aynı "%b %d %H : %M : %S %Y"şekilde davranır.

'C'-- [0, 99] aralığındaki ondalık giriş alanını değerine val dönüştürür ve içinde pt-&tm_yeardepolarval * 100 - 1900.

'd' veya 'e' -- [1, 31] aralığındaki ondalık giriş alanını dönüştürür ve değerini içinde pt-&tm_mdaydepolar.

'D' -- ile aynı "%m / %d / %y"şekilde davranır.

'H' -- [0, 23] aralığındaki ondalık giriş alanını dönüştürür ve değerini içinde pt-&tm_hourdepolar.

'I' -- [0, 11] aralığındaki bir ondalık giriş alanını dönüştürür ve değerini içinde pt-&tm_hourdepolar.

'j' -- [1, 366] aralığındaki bir ondalık giriş alanını dönüştürür ve değerini içinde pt-&tm_ydaydepolar.

'm' -- [1, 12] aralığındaki ondalık giriş alanını değere val dönüştürür ve içinde depolar val - 1 ve değerini içinde pt-&tm_mondepolar.

'M' -- [0, 59] aralığındaki bir ondalık giriş alanını dönüştürür ve değerini içinde pt-&tm_mindepolar.

'n' veya 't' -- ile aynı " "şekilde davranır.

'p' -- "" veya "" değerini sıfıra, "PM" veya "PM" değerini 12'ye dönüştürür ve bu değeri öğesine pt-&tm_hourekler.

'r' -- ile aynı "%I : %M : %S %p"şekilde davranır.

'R' -- ile aynı "%H %M"şekilde davranır.

'S' -- [0, 59] aralığındaki bir ondalık giriş alanını dönüştürür ve değerini içinde pt-&tm_secdepolar.

'T' veya 'X' -- ile aynı "%H : %M : S"şekilde davranır.

'U' -- [0, 53] aralığındaki bir ondalık giriş alanını dönüştürür ve değerini içinde pt-&tm_ydaydepolar.

'w' -- [0, 6] aralığındaki bir ondalık giriş alanını dönüştürür ve değerini içinde pt-&tm_wdaydepolar.

'W' -- [0, 53] aralığındaki bir ondalık giriş alanını dönüştürür ve değerini içinde pt-&tm_ydaydepolar.

'x' -- ile aynı "%d / %m / %y"şekilde davranır.

'y'-- [0, 99] aralığındaki ondalık giriş alanını değerine val dönüştürür ve içinde pt-&tm_yeardepolarval < 69 val + 100 : val.

'Y'-- time_get::get_year ile aynı şekilde davranır.

ve içindeki diğer dönüştürme tanımlayıcıları da ios_base::failbit state döndürülüyor. Bu uygulamada, herhangi bir değiştiricinin hiçbir etkisi yoktur.

time_get::d o_get_date

Bir dizeyi için x tanımlayıcısı tarafından üretilen tarih olarak ayrıştırmak için strftimeçağrılan korumalı bir sanal üye işlevi.

virtual iter_type do_get_date(iter_type first,
    iter_type last,
    ios_base& iosbase,
    ios_base::iostate& state,
    tm* ptm) const;

Parametreler

birinci
Dönüştürülecek sıranın başlangıcını ele alan giriş yineleyicisi.

son
Dönüştürülecek sıranın sonunu adresleyerek giriş yineleyicisi.

iosbase
Ayarlandığında para birimi simgesinin isteğe bağlı olduğunu gösteren biçim bayrağı; aksi takdirde gereklidir.

state
İşlemlerin başarılı olup olmadığına göre akış durumu için uygun bit maskesi öğelerini ayarlar.

ptm
Tarih bilgilerinin depolandığı yere ilişkin bir işaretçi.

Dönüş Değeri

Giriş alanının ötesindeki ilk öğeyi ele alan bir giriş yineleyicisi.

Açıklamalar

Sanal korumalı üye işlevi, tam ve belirsiz bir tarih giriş alanını tanıyana kadar ilk başta [ first, last) dizisinde başlayan sıralı öğeleri eşleştirmeye çalışır. Başarılı olursa, bu alanı tm::tm_mon, tm::tm_day ve tm::tm_year bileşenleri olarak eşdeğer değerine dönüştürür ve sonuçları ptm->tm_monsırasıyla , ptm->tm_dayve ptm->tm_yeariçinde depolar. Tarih giriş alanının ötesindeki ilk öğeyi gösteren bir yineleyici döndürür. Aksi takdirde, işlev durum olarak ayarlariosbase::failbit. Geçerli bir tarih giriş alanının herhangi bir ön ekinin ötesinde ilk öğeyi gösteren bir yineleyici döndürür. Her iki durumda da, dönüş değeri son değere eşitse işlev durum olarak ayarlanırios_base::eofbit.

Tarih giriş alanının biçimi yerel ayara bağlıdır. Varsayılan yerel ayar için, tarih giriş alanında AAAD, YYYY biçimindedir; burada:

  • MMM, get_monthname çağrılarak eşleştirilir ve bu da ayı verir.

  • DD, karşılık gelen sayısal değeri ayın gününü veren [1, 31] aralığında olması gereken ondalık basamak dizisidir.

  • YYYY, yıl vererek get_year aranarak eşleştirilir.

Değişmez boşluklar ve virgüller giriş dizisindeki karşılık gelen öğelerle eşleşmelidir.

Örnek

çağrısı do_get_dateyapan get_date örneğine bakın.

time_get::d o_get_monthname

Bir dizeyi ayın adı olarak ayrıştırmak için çağrılan korumalı sanal üye işlevi.

virtual iter_type do_get_monthname(iter_type first,
    iter_type last,
    ios_base& iosbase,
    ios_base::iostate& state,
    tm* ptm) const;

Parametreler

birinci
Dönüştürülecek sıranın başlangıcını ele alan giriş yineleyicisi.

son
Dönüştürülecek sıranın sonunu adresleyerek giriş yineleyicisi.

iosbase
Kullanılmıyor.

state
İşlemlerin başarılı olup olmadığına göre akış durumu için uygun bit maskesi öğelerini ayarlayan bir çıkış parametresi.

ptm
Ay bilgilerinin depolandığı yere ilişkin bir işaretçi.

Dönüş Değeri

Giriş alanının ötesindeki ilk öğeyi ele alan bir giriş yineleyicisi.

Açıklamalar

Sanal korumalı üye işlevi, tam ve boş bir ay giriş alanını tanıyana kadar [ first, last) dizisinde ilk başta başlayan sıralı öğeleri eşleştirmeye çalışır. Başarılı olursa, bu alanı tm::tm_mon bileşeniyle eşdeğer değerine dönüştürür ve sonucu içinde ptm->tm_mondepolar. Ay giriş alanının ötesindeki ilk öğeyi gösteren bir yineleyici döndürür. Aksi takdirde, işlev durum olarak ayarlarios_base::failbit. Geçerli bir ay giriş alanının herhangi bir ön ekinin ötesinde ilk öğeyi gösteren bir yineleyici döndürür. Her iki durumda da, dönüş değeri son değere eşitse işlev durum olarak ayarlanırios_base::eofbit.

Ay giriş alanı, Ocak, Ocak, Şubat, vb. yerel ayara özgü dizilerden oluşan en uzun diziyle eşleşen bir dizidir. Dönüştürülen değer, Ocak ayından bu yana ay sayısıdır.

Örnek

çağrısı do_get_monthnameyapan get_monthname örneğine bakın.

time_get::d o_get_time

Bir dizeyi için X tanımlayıcısı tarafından üretilen tarih olarak ayrıştırmak için strftimeçağrılan korumalı bir sanal üye işlevi.

virtual iter_type do_get_time(iter_type first,
    iter_type last,
    ios_base& iosbase,
    ios_base::iostate& state,
    tm* ptm) const;

Parametreler

birinci
Dönüştürülecek sıranın başlangıcını ele alan giriş yineleyicisi.

son
Dönüştürülecek sıranın sonunu adresleyerek giriş yineleyicisi.

iosbase
Kullanılmıyor.

state
İşlemlerin başarılı olup olmadığına göre akış durumu için uygun bit maskesi öğelerini ayarlar.

ptm
Tarih bilgilerinin depolandığı yere ilişkin bir işaretçi.

Dönüş Değeri

Giriş alanının ötesindeki ilk öğeyi ele alan bir giriş yineleyicisi.

Açıklamalar

Sanal korumalı üye işlevi, tam ve belirsiz bir zaman giriş alanı algılayana kadar [ first, last) dizisinde ilk başta başlayan sıralı öğeleri eşleştirmeye çalışır. Başarılı olursa, bu alanı , tm::tm_minve bileşenleriyle tm::tm_houreşdeğer değerine dönüştürür ve sonuçları ptm->tm_hoursırasıyla , ptm->tm_minve ptm->tm_sectm::tm_seciçinde depolar. Zaman giriş alanının ötesinde ilk öğeyi gösteren bir yineleyici döndürür. Aksi takdirde, işlev durum olarak ayarlarios_base::failbit. Geçerli bir zaman giriş alanının herhangi bir ön ekinin ötesinde ilk öğeyi gösteren bir yineleyici döndürür. Her iki durumda da, dönüş değeri son değere eşitse işlev durum olarak ayarlanırios_base::eofbit.

Bu uygulamada, zaman giriş alanı HH:MM:SS biçimindedir; burada:

  • SS, karşılık gelen sayısal değeri günün saatini veren [0, 24) aralığında olması gereken ondalık basamak dizisidir.

  • AA, karşılık gelen sayısal değeri [0, 60) aralığında olması gereken ve saati geçen dakikaları veren ondalık basamak dizisidir.

  • SS, karşılık gelen sayısal değerin [0, 60 aralığında olması gereken ve dakikayı geçen saniyeleri veren ondalık basamak dizisidir.

Değişmez değer iki nokta üst üstelerinin giriş dizisindeki ilgili öğelerle eşleşmesi gerekir.

Örnek

çağrısı do_get_timeyapan get_time örneğine bakın.

time_get::d o_get_weekday

Bir dizeyi haftanın günü adı olarak ayrıştırmak için çağrılan korumalı sanal üye işlevi.

virtual iter_type do_get_weekday(iter_type first,
    iter_type last,
    ios_base& iosbase,
    ios_base::iostate& state,
    tm* ptm) const;

Parametreler

birinci
Dönüştürülecek sıranın başlangıcını ele alan giriş yineleyicisi.

son
Dönüştürülecek sıranın sonunu adresleyerek giriş yineleyicisi.

iosbase
Ayarlandığında para birimi simgesinin isteğe bağlı olduğunu gösteren biçim bayrağı; aksi takdirde gereklidir.

state
İşlemlerin başarılı olup olmadığına göre akış durumu için uygun bit maskesi öğelerini ayarlar.

ptm
Hafta içi bilgilerinin depolandığı yere ilişkin bir işaretçi.

Dönüş Değeri

Giriş alanının ötesindeki ilk öğeyi ele alan bir giriş yineleyicisi.

Açıklamalar

Sanal korumalı üye işlevi, tam, hiç olmayan bir hafta içi giriş alanını tanıyana kadar [ first, last) dizisinde ilk başta başlayan sıralı öğeleri eşleştirmeye çalışır. Başarılı olursa, bu alanı tm::tm_wday bileşeniyle eşdeğer değerine dönüştürür ve sonucu içinde ptm->tm_wdaydepolar. Hafta içi giriş alanının ötesindeki ilk öğeyi gösteren bir yineleyici döndürür. Aksi takdirde, işlev durum olarak ayarlarios_base::failbit. Geçerli bir hafta içi giriş alanının herhangi bir ön ekinin ötesinde ilk öğeyi gösteren bir yineleyici döndürür. Her iki durumda da, dönüş değeri son değere eşitse işlev durum olarak ayarlanırios_base::eofbit.

Hafta içi giriş alanı, Güneş, Pazar, Mon, Pazartesi gibi yerel ayara özgü dizilerin en uzunlarıyla eşleşen bir dizidir. Dönüştürülen değer, Pazar'dan bu yana olan gün sayısıdır.

Örnek

çağrısı do_get_weekdayyapan get_weekday örneğine bakın.

time_get::d o_get_year

Bir dizeyi yılın adı olarak ayrıştırmak için çağrılan korumalı sanal üye işlevi.

virtual iter_type do_get_year(iter_type first,
    iter_type last,
    ios_base& iosbase,
    ios_base::iostate& state,
    tm* ptm) const;

Parametreler

birinci
Dönüştürülecek sıranın başlangıcını ele alan giriş yineleyicisi.

son
Dönüştürülecek sıranın sonunu adresleyerek giriş yineleyicisi.

iosbase
Ayarlandığında para birimi simgesinin isteğe bağlı olduğunu gösteren biçim bayrağı; aksi takdirde gereklidir.

state
İşlemlerin başarılı olup olmadığına göre akış durumu için uygun bit maskesi öğelerini ayarlar.

ptm
Yıl bilgilerinin depolandığı yere ilişkin bir işaretçi.

Dönüş Değeri

Giriş alanının ötesindeki ilk öğeyi ele alan bir giriş yineleyicisi.

Açıklamalar

Sanal korumalı üye işlevi, tam, hiç olmayan bir yıl giriş alanını tanıyana kadar [ first, last) dizisinde ilk başta başlayan sıralı öğeleri eşleştirmeye çalışır. Başarılı olursa, bu alanı tm::tm_year bileşeniyle eşdeğer değerine dönüştürür ve sonucu içinde ptm->tm_yeardepolar. Yıl giriş alanının ötesindeki ilk öğeyi gösteren bir yineleyici döndürür. Aksi takdirde, işlev durum olarak ayarlarios_base::failbit. Geçerli bir yıl giriş alanının herhangi bir ön ekinin ötesinde ilk öğeyi gösteren bir yineleyici döndürür. Her iki durumda da, dönüş değeri son değere eşitse işlev durum olarak ayarlanırios_base::eofbit.

Yıl giriş alanı, karşılık gelen sayısal değeri [1900, 2036) aralığında olması gereken ondalık basamak dizisidir. Depolanan değer bu değer eksi 1900'dür. Bu uygulamada, [69, 136) aralığındaki değerler yıl aralığını temsil eder [1969, 2036). [0, 69) aralığındaki değerler de izin verilebilir, ancak belirli çeviri ortamına bağlı olarak [1900, 1969) veya [2000, 2069) yıl aralığını temsil edebilir.

Örnek

çağrısı do_get_yearyapan get_year örneğine bakın.

time_get::get

Karakter verilerinin bir kaynağından okur ve bu verileri saat yapı biriminde depolanan bir saate dönüştürür. İlk işlev bir dönüştürme tanımlayıcısını ve değiştiriciyi kabul eder, ikincisi birkaçını kabul eder.

iter_type get(
    iter_type first,
    iter_type last,
    ios_base& iosbase,
    ios_base::iostate& state,
    tm* ptm,
    char fmt,
    char mod) const;

iter_type get(
    iter_type first,
    iter_type last,
    ios_base& iosbase,
    ios_base::iostate& state,
    tm* ptm,
    char_type* fmt_first,
    char_type* fmt_last) const;

Parametreler

birinci
Dönüştürülecek sıranın nerede başlatıldığını gösteren giriş yineleyicisi.

son
Dönüştürülecek sıranın sonunu gösteren giriş yineleyicisi.

iosbase
Akış.

state
Hataları göstermek üzere akış durumu için uygun bit maskesi öğeleri ayarlanır.

ptm
Saatin depolandığı zaman yapısının işaretçisi.

Fmt
Dönüştürme tanımlayıcısı karakteri.

mod
İsteğe bağlı değiştirici karakter.

fmt_first
Biçim yönergelerinin başladığı yeri gösterir.

fmt_last
Biçim yönergelerinin sonuna işaret eder.

Dönüş Değeri

Zaman yapısını *ptmatamak için kullanılan veriden sonraki ilk karaktere bir yineleyici döndürür.

Açıklamalar

İlk üye işlevi döndürür do_get(first, last, iosbase, state, ptm, fmt, mod).

İkinci üye işlevi tarafından [fmt_first, fmt_last)sınırlandırılan biçimin denetimi altında çağrılardo_get. Biçimi, her biri ile [first, last)sınırlandırılmış sıfır veya daha fazla giriş öğesinin dönüştürüleceğini belirleyen bir alan dizisi olarak kabul eder. İlk dönüştürülmemiş öğeyi gösteren bir yineleyici döndürür. Üç tür alan vardır:

Biçiminde yüzde (%) ve ardından [EOQ#] kümesinde isteğe bağlı değiştirici mod ve ardından bir dönüştürme tanımlayıcısı fmt, ilk olarak tarafından do_get(first, last, iosbase, state, ptm, fmt, mod)döndürülen değerle değiştirilir. Dönüştürme hatası durumunda ayarlanıp ios_base::failbit döndürülüyor.

biçimindeki bir boşluk öğesi, sıfır veya daha fazla giriş boşluk öğesini atlar.

Biçimdeki diğer öğeler atlanan bir sonraki giriş öğesiyle eşleşmelidir. Bir eşleşme hatası durumunda ayarlanıp ios_base::failbit döndürülüyor.

time_get::get_date

Dizeyi için strftimex tanımlayıcısı tarafından üretilen tarih olarak ayrıştırır.

iter_type get_date(iter_type first,
    iter_type last,
    ios_base& iosbase,
    ios_base::iostate& state,
    tm* ptm) const;

Parametreler

birinci
Dönüştürülecek sıranın başlangıcını ele alan giriş yineleyicisi.

son
Dönüştürülecek sıranın sonunu adresleyerek giriş yineleyicisi.

iosbase
Ayarlandığında para birimi simgesinin isteğe bağlı olduğunu gösteren biçim bayrağı; aksi takdirde gereklidir.

state
İşlemlerin başarılı olup olmadığına göre akış durumu için uygun bit maskesi öğelerini ayarlar.

ptm
Tarih bilgilerinin depolandığı yere ilişkin bir işaretçi.

Dönüş Değeri

Giriş alanının ötesindeki ilk öğeyi ele alan bir giriş yineleyicisi.

Açıklamalar

Üye işlevi do_get_date(first, last, iosbase, state, ptm) döndürür.

Ayların 0'dan 11'e kadar sayıldığını unutmayın.

Örnek

// time_get_get_date.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
#include <time.h>
using namespace std;
int main( )
{
   locale loc;
   basic_stringstream< char > pszGetF, pszPutF, pszGetI, pszPutI;
   ios_base::iostate st = 0;
   struct tm t;
   memset(&t, 0, sizeof(struct tm));

   pszGetF << "July 4, 2000";
   pszGetF.imbue( loc );
   basic_istream<char>::_Iter i = use_facet <time_get<char> >
   (loc).get_date(basic_istream<char>::_Iter(pszGetF.rdbuf( ) ),
            basic_istream<char>::_Iter(0), pszGetF, st, &t);

   if ( st & ios_base::failbit )
      cout << "time_get("<< pszGetF.rdbuf( )->str( )<< ") FAILED on char: " << *i << endl;
   else

      cout << "time_get("<< pszGetF.rdbuf( )->str( )<< ") ="
      << "\ntm_sec: " << t.tm_sec
      << "\ntm_min: " << t.tm_min
      << "\ntm_hour: " << t.tm_hour
      << "\ntm_mday: " << t.tm_mday
      << "\ntm_mon: " << t.tm_mon
      << "\ntm_year: " << t.tm_year
      << "\ntm_wday: " << t.tm_wday
      << "\ntm_yday: " << t.tm_yday
      << "\ntm_isdst: " << t.tm_isdst
      << endl;
}
time_get(July 4, 2000) =
tm_sec: 0
tm_min: 0
tm_hour: 0
tm_mday: 4
tm_mon: 6
tm_year: 100
tm_wday: 0
tm_yday: 0
tm_isdst: 0

time_get::get_monthname

Bir dizeyi ayın adı olarak ayrıştırır.

iter_type get_monthname(iter_type first,
    iter_type last,
    ios_base& iosbase,
    ios_base::iostate& state,
    tm* ptm) const;

Parametreler

birinci
Dönüştürülecek sıranın başlangıcını ele alan giriş yineleyicisi.

son
Dönüştürülecek sıranın sonunu adresleyerek giriş yineleyicisi.

iosbase
Kullanılmıyor.

state
İşlemlerin başarılı olup olmadığına göre akış durumu için uygun bit maskesi öğelerini ayarlayan bir çıkış parametresi.

ptm
Ay bilgilerinin depolandığı yere ilişkin bir işaretçi.

Dönüş Değeri

Giriş alanının ötesindeki ilk öğeyi ele alan bir giriş yineleyicisi.

Açıklamalar

Üye işlevi do_get_monthname(first, last, iosbase, state, ptm) döndürür.

Örnek

// time_get_get_monthname.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
#include <time.h>
using namespace std;
int main( )
{
   locale loc ( "French" );
   basic_stringstream<char> pszGetF, pszPutF, pszGetI, pszPutI;
   ios_base::iostate st = 0;
   struct tm t;
   memset( &t, 0, sizeof( struct tm ) );

   pszGetF << "juillet";
   pszGetF.imbue( loc );
   basic_istream<char>::_Iter i = use_facet <time_get <char> >
   (loc).get_monthname(basic_istream<char>::_Iter(pszGetF.rdbuf( )),
              basic_istream<char>::_Iter(0), pszGetF, st, &t);

   if (st & ios_base::failbit)
      cout << "time_get("<< pszGetF.rdbuf( )->str( )<< ") FAILED on char: " << *i << endl;
   else

      cout << "time_get("<< pszGetF.rdbuf( )->str( )<< ") ="
      << "\ntm_sec: " << t.tm_sec
      << "\ntm_min: " << t.tm_min
      << "\ntm_hour: " << t.tm_hour
      << "\ntm_mday: " << t.tm_mday
      << "\ntm_mon: " << t.tm_mon
      << "\ntm_year: " << t.tm_year
      << "\ntm_wday: " << t.tm_wday
      << "\ntm_yday: " << t.tm_yday
      << "\ntm_isdst: " << t.tm_isdst
      << endl;
}
time_get(juillet) =
tm_sec: 0
tm_min: 0
tm_hour: 0
tm_mday: 0
tm_mon: 6
tm_year: 0
tm_wday: 0
tm_yday: 0
tm_isdst: 0

time_get::get_time

Dizeyi için strftimeX tanımlayıcısı tarafından üretilen tarih olarak ayrıştırır.

iter_type get_time(iter_type first,
    iter_type last,
    ios_base& iosbase,
    ios_base::iostate& state,
    tm* ptm) const;

Parametreler

birinci
Dönüştürülecek sıranın başlangıcını ele alan giriş yineleyicisi.

son
Dönüştürülecek sıranın sonunu adresleyerek giriş yineleyicisi.

iosbase
Kullanılmıyor.

state
İşlemlerin başarılı olup olmadığına göre akış durumu için uygun bit maskesi öğelerini ayarlar.

ptm
Tarih bilgilerinin depolandığı yere ilişkin bir işaretçi.

Dönüş Değeri

Giriş alanının ötesindeki ilk öğeyi ele alan bir giriş yineleyicisi.

Açıklamalar

Üye işlevi do_get_time(first, last, iosbase, state, ptm) döndürür.

Örnek

// time_get_get_time.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
#include <time.h>
using namespace std;
int main( )
{
   locale loc;
   basic_stringstream<char> pszGetF, pszPutF, pszGetI, pszPutI;
   ios_base::iostate st = 0;
   struct tm t;
   memset( &t, 0, sizeof( struct tm ) );

   pszGetF << "11:13:20";
   pszGetF.imbue( loc );
   basic_istream<char>::_Iter i = use_facet
      <time_get <char> >
      (loc).get_time(basic_istream<char>::_Iter(pszGetF.rdbuf( )),
               basic_istream<char>::_Iter(0), pszGetF, st, &t);

   if (st & ios_base::failbit)
      cout << "time_get::get_time("<< pszGetF.rdbuf( )->str( )<< ") FAILED on char: " << *i << endl;
   else

      cout << "time_get::get_time("<< pszGetF.rdbuf( )->str( )<< ") ="
      << "\ntm_sec: " << t.tm_sec
      << "\ntm_min: " << t.tm_min
      << "\ntm_hour: " << t.tm_hour
      << endl;
}
time_get::get_time(11:13:20) =
tm_sec: 20
tm_min: 13
tm_hour: 11

time_get::get_weekday

Bir dizeyi haftanın gününün adı olarak ayrıştırır.

iter_type get_weekday(iter_type first,
    iter_type last,
    ios_base& iosbase,
    ios_base::iostate& state,
    tm* ptm) const;

Parametreler

birinci
Dönüştürülecek sıranın başlangıcını ele alan giriş yineleyicisi.

son
Dönüştürülecek sıranın sonunu adresleyerek giriş yineleyicisi.

iosbase
Ayarlandığında para birimi simgesinin isteğe bağlı olduğunu gösteren biçim bayrağı; aksi takdirde gereklidir.

state
İşlemlerin başarılı olup olmadığına göre akış durumu için uygun bit maskesi öğelerini ayarlar.

ptm
Hafta içi bilgilerinin depolandığı yere ilişkin bir işaretçi.

Dönüş Değeri

Giriş alanının ötesindeki ilk öğeyi ele alan bir giriş yineleyicisi.

Açıklamalar

Üye işlevi do_get_weekday(first, last, iosbase, state, ptm) döndürür.

Örnek

// time_get_get_weekday.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
#include <time.h>
using namespace std;
int main( )
{
   locale loc ( "French" );
   basic_stringstream< char > pszGetF, pszPutF, pszGetI, pszPutI;
   ios_base::iostate st = 0;
   struct tm t;
   memset( &t, 0, sizeof( struct tm ) );

   pszGetF << "mercredi";
   pszGetF.imbue(loc);
   basic_istream<char>::_Iter i = use_facet
      <time_get<char> >
      (loc).get_weekday(basic_istream<char>::_Iter(pszGetF.rdbuf( )),
               basic_istream<char>::_Iter(0), pszGetF, st, &t);

   if (st & ios_base::failbit)
      cout << "time_get::get_time("<< pszGetF.rdbuf( )->str( )<< ") FAILED on char: " << *i << endl;
   else

      cout << "time_get::get_time("<< pszGetF.rdbuf( )->str( )<< ") ="
      << "\ntm_wday: " << t.tm_wday
      << endl;
}
time_get::get_time(mercredi) =
tm_wday: 3

time_get::get_year

Bir dizeyi yılın adı olarak ayrıştırır.

iter_type get_year(iter_type first,
    iter_type last,
    ios_base& iosbase,
    ios_base::iostate& state,
    tm* ptm) const;

Parametreler

birinci
Dönüştürülecek sıranın başlangıcını ele alan giriş yineleyicisi.

son
Dönüştürülecek sıranın sonunu adresleyerek giriş yineleyicisi.

iosbase
Ayarlandığında para birimi simgesinin isteğe bağlı olduğunu gösteren biçim bayrağı; aksi takdirde gereklidir.

state
İşlemlerin başarılı olup olmadığına göre akış durumu için uygun bit maskesi öğelerini ayarlar.

ptm
Yıl bilgilerinin depolandığı yere ilişkin bir işaretçi.

Dönüş Değeri

Giriş alanının ötesindeki ilk öğeyi ele alan bir giriş yineleyicisi.

Açıklamalar

Üye işlevi do_get_year(first, last, iosbase, state, ptm) döndürür.

Örnek

// time_get_get_year.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
#include <time.h>
using namespace std;
int main( )
{
   locale loc;
   basic_stringstream<char> pszGetF, pszPutF, pszGetI, pszPutI;
   ios_base::iostate st = 0;
   struct tm t;
   memset( &t, 0, sizeof( struct tm ) );

   pszGetF << "1928";

   pszGetF.imbue( loc );
   basic_istream<char>::_Iter i = use_facet
      <time_get<char> >
      (loc).get_year(basic_istream<char>::_Iter(pszGetF.rdbuf( )),
               basic_istream<char>::_Iter(0), pszGetF, st, &t);

   if (st & ios_base::failbit)
      cout << "time_get::get_year("<< pszGetF.rdbuf( )->str( )<< ") FAILED on char: " << *i << endl;
   else

      cout << "time_get::get_year("<< pszGetF.rdbuf( )->str( )<< ") ="
      << "\ntm_year: " << t.tm_year
      << endl;
}
time_get::get_year(1928) =
tm_year: 28

time_get::iter_type

Bir giriş yineleyiciyi açıklayan tür.

typedef InputIterator iter_type;

Açıklamalar

Tür, InputIterator şablon parametresinin eş anlamlısı.

time_get::time_get

türündeki time_getnesneler için oluşturucu.

explicit time_get(size_t refs = 0);

Parametreler

refs
Nesne için bellek yönetimi türünü belirtmek için kullanılan tamsayı değeri.

Açıklamalar

refs parametresinin olası değerleri ve anlamları şunlardır:

  • 0: Nesnenin yaşam süresi, nesnenin bulunduğu yerel ayarlar tarafından yönetilir.

  • 1: Nesnenin ömrü el ile yönetilmelidir.

  • > 1: Bu değerler tanımlanmamıştır.

Yıkıcı korunduğundan doğrudan örnek yoktur.

Oluşturucu, temel nesnesini locale::facet()refs ile başlatır.

Ayrıca bkz.

<yerel ayar>
time_base Sınıfı
C++ Standart Kitaplığında İş Parçacığı Güvenliği