Sdílet prostřednictvím


time_get – třída

Šablona třídy popisuje objekt, který může sloužit jako omezující vlastnost národního prostředí pro řízení převodů sekvencí typu CharType na časové hodnoty.

Syntaxe

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

Parametry

CharType
Typ používaný v rámci programu ke kódování znaků.

InputIterator
Iterátor, ze kterého se čtou hodnoty času.

Poznámky

Stejně jako u omezující vlastnosti národního prostředí má ID statického objektu počáteční uloženou hodnotu nula. První pokus o přístup k uložené hodnotě ukládá jedinečnou kladnou hodnotu v ID.

Konstruktory

Konstruktor Popis
time_get Konstruktor pro objekty typu time_get.

Typedefs

Název typu Popis
char_type Typ, který se používá k popisu znaku používaného národním prostředním.
iter_type Typ, který popisuje vstupní iterátor.

Členské funkce

Členová funkce Popis
date_order Vrátí pořadí data používané omezující vlastností.
do_date_order Chráněná virtuální členská funkce, která je volána k vrácení pořadí data používaného omezující vlastností.
do_get Čte a převede data znaků na hodnotu času.
do_get_date Chráněná virtuální členová funkce, která je volána k analýze řetězce jako data vytvořeného specifikátorem x pro strftime.
do_get_monthname Chráněná virtuální členská funkce, která je volána k analýze řetězce jako názvu měsíce.
do_get_time Chráněná virtuální členová funkce, která je volána k analýze řetězce jako data vytvořeného specifikátorem X pro strftime.
do_get_weekday Chráněná virtuální členská funkce, která je volána k analýze řetězce jako názvu týdnu.
do_get_year Chráněná virtuální členská funkce, která je volána k analýze řetězce jako názvu roku.
get Čte ze zdroje data znaků a převede je na čas, který je uložen v časové struktuře.
get_date Parsuje řetězec jako datum vytvořené specifikátorem x pro strftime.
get_monthname Analyzuje řetězec jako název měsíce.
get_time Parsuje řetězec jako datum vytvořené specifikátorem X pro strftime.
get_weekday Analyzuje řetězec jako název dne v týdnu.
get_year Analyzuje řetězec jako název roku.

Požadavky

Záhlaví:<národní prostředí>

Obor názvů: std

time_get::char_type

Typ, který se používá k popisu znaku používaného národním prostředním.

typedef CharType char_type;

Poznámky

Typ je synonymem parametru šablony CharType.

time_get::d ate_order

Vrátí pořadí data používané omezující vlastností.

dateorder date_order() const;

Návratová hodnota

Pořadí kalendářních dat, které používá omezující vlastnost.

Poznámky

Členová funkce vrátí do_date_order.

Příklad

// 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

Chráněná virtuální členská funkce, která je volána k vrácení pořadí data používaného omezující vlastností.

virtual dateorder do_date_order() const;

Návratová hodnota

Pořadí kalendářních dat, které používá omezující vlastnost.

Poznámky

Virtuální chráněná členová funkce vrátí hodnotu typu time_base::d ateorder, která popisuje pořadí, ve kterém jsou součásti kalendářních dat spárovány do_get_date. V této implementaci je hodnota time_base::mdy, která odpovídá datům formuláře 2. prosince 1979.

Příklad

Podívejte se na příklad date_order, který volá do_date_order.

time_get::d o_get

Čte a převede data znaků na hodnotu času. Přijímá jeden specifikátor převodu a modifikátor.

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;

Parametry

první
Iterátor vstupu, který označuje začátek sekvence, která se má převést.

poslední
Iterátor vstupu, který označuje konec sekvence.

iosbase
Objekt datového proudu.

state
Pole v iosbase, kde jsou příslušné prvky bitové masky nastaveny tak, aby označily chyby.

ptm
Ukazatel na časovou strukturu, ve které má být čas uložen.

Fmt
Specifikátor převodu.

zkratka modulo
Volitelný modifikační znak.

Návratová hodnota

Vrátí iterátor, který určuje první nekonvertovaný prvek. Sada ios_base::failbit selhání převodu state a vrátí se jako první.

Poznámky

Virtuální členová funkce převede a přeskočí jeden nebo více vstupních prvků v rozsahu [first, last) k určení hodnot uložených v jednom nebo více členech *pt. Sada ios_base::failbit selhání převodu state a vrátí se jako první. V opačném případě funkce vrátí iterátor označující první nekonvertovaný prvek.

Specifikátory převodu jsou:

'a' nebo 'A' -- chová se stejně jako time_get::get_weekday.

'b', 'B'nebo 'h' -- se chová stejně jako time_get::get_monthname.

'c' -- chová se stejně jako "%b %d %H : %M : %S %Y".

'C' -- převede desetinné vstupní pole v rozsahu [0, 99] na hodnotu val a uloží val * 100 - 1900 do pt-&tm_year.

'd' nebo 'e' -- převede desetinné vstupní pole v rozsahu [1, 31] a uloží jeho hodnotu do pt-&tm_mday.

'D' -- chová se stejně jako "%m / %d / %y".

'H' -- převede desetinné vstupní pole v rozsahu [0, 23] a uloží jeho hodnotu do pt-&tm_hour.

'I' -- převede desetinné vstupní pole v rozsahu [0, 11] a uloží jeho hodnotu do pt-&tm_hour.

'j' -- převede desetinné vstupní pole v rozsahu [1, 366] a uloží jeho hodnotu do pt-&tm_yday.

'm' -- převede desetinné vstupní pole v oblasti [1, 12] na hodnotu val a uloží a uloží val - 1 její hodnotu do pt-&tm_mon.

'M' -- převede desetinné vstupní pole v rozsahu [0, 59] a uloží jeho hodnotu do pt-&tm_min.

'n' nebo 't' -- chová se stejně jako " ".

'p' -- převede "AM" nebo "am" na nulu a "PM" nebo "PM" na 12 a přidá tuto hodnotu do pt-&tm_hour.

'r' -- chová se stejně jako "%I : %M : %S %p".

'R' -- chová se stejně jako "%H %M".

'S' -- převede desetinné vstupní pole v rozsahu [0, 59] a uloží jeho hodnotu do pt-&tm_sec.

'T' nebo 'X' -- chová se stejně jako "%H : %M : S".

'U' -- převede desetinné vstupní pole v rozsahu [0, 53] a uloží jeho hodnotu do pt-&tm_yday.

'w' -- převede desetinné vstupní pole v rozsahu [0, 6] a uloží jeho hodnotu do pt-&tm_wday.

'W' -- převede desetinné vstupní pole v rozsahu [0, 53] a uloží jeho hodnotu do pt-&tm_yday.

'x' -- chová se stejně jako "%d / %m / %y".

'y' -- převede desetinné vstupní pole v rozsahu [0, 99] na hodnotu val a uloží val < 69 val + 100 : val do pt-&tm_year.

'Y' -- chová se stejně jako time_get::get_year.

Všechny ostatní sady ios_base::failbit specifikátoru převodu a state vrátí se. V této implementaci nemá žádný modifikátor žádný vliv.

time_get::d o_get_date

Chráněná virtuální členová funkce, která je volána k analýze řetězce jako data vytvořeného specifikátorem x pro strftime.

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

Parametry

první
Vstupní iterátor adresovaný začátek sekvence, který se má převést.

poslední
Vstupní iterátor adresovaný na konec sekvence, který se má převést.

iosbase
Příznak formátu, který při nastavení označuje, že symbol měny je volitelný; v opačném případě se vyžaduje.

state
Nastaví příslušné prvky bitové masky pro stav datového proudu podle toho, jestli operace proběhly úspěšně.

ptm
Ukazatel na místo, kde mají být uloženy informace o datu.

Návratová hodnota

Vstupní iterátor adresuje první prvek mimo vstupní pole.

Poznámky

Virtuální chráněná členová funkce se pokusí nejprve shodovat sekvenční prvky začínající v sekvenci [ , firstlast), dokud nerozpozná úplné, neprázdné datové vstupní pole. V případě úspěchu převede toto pole na ekvivalentní hodnotu jako komponenty tm::tm_mon, tm::tm_day a tm::tm_year a uloží výsledky do ptm->tm_mon, ptm->tm_daya ptm->tm_year, v uvedeném pořadí. Vrátí iterátor označující první prvek nad rámec vstupního pole data. V opačném případě se funkce nastaví iosbase::failbit ve stavu. Vrátí iterátor označující první prvek nad rámec jakékoli předpony platného vstupního pole data. V obou případech platí, že pokud se vrácená hodnota rovná poslední, funkce se nastaví ios_base::eofbit ve stavu.

Formát vstupního pole data je závislý na národním prostředí. Pro výchozí národní prostředí má vstupní pole kalendářního data formulář MMM DD, YYYY, kde:

  • MMM se porovnává voláním get_monthname a dává měsíci.

  • DD je posloupnost desetinných číslic, jejichž odpovídající číselná hodnota musí být v rozsahu [1, 31], přičemž den v měsíci.

  • YYYY se shoduje voláním get_year a dává rok.

Literální mezery a čárky musí odpovídat odpovídajícím prvkům ve vstupní sekvenci.

Příklad

Podívejte se na příklad get_date, který volá do_get_date.

time_get::d o_get_monthname

Chráněná virtuální členská funkce, která je volána k analýze řetězce jako názvu měsíce.

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

Parametry

první
Vstupní iterátor adresovaný začátek sekvence, který se má převést.

poslední
Vstupní iterátor adresovaný na konec sekvence, který se má převést.

iosbase
Nepoužívá se.

state
Výstupní parametr, který nastaví příslušné prvky masky bitu pro stav datového proudu podle toho, jestli operace proběhly úspěšně.

ptm
Ukazatel na místo, kde mají být uloženy informace o měsíci.

Návratová hodnota

Vstupní iterátor adresuje první prvek mimo vstupní pole.

Poznámky

Virtuální chráněná členová funkce se pokusí nejprve shodovat sekvenční prvky začínající v sekvenci [ , firstlast), dokud nerozpozná úplné, neprázdné měsíční vstupní pole. V případě úspěchu převede toto pole na ekvivalentní hodnotu jako součást tm::tm_mon a uloží výsledek do ptm->tm_mon. Vrátí iterátor označující první prvek nad vstupní pole měsíce. V opačném případě se funkce nastaví ios_base::failbit ve stavu. Vrátí iterátor označující první prvek nad rámec jakékoli předpony platného vstupního pole měsíce. V obou případech platí, že pokud se vrácená hodnota rovná poslední, funkce se nastaví ios_base::eofbit ve stavu.

Vstupní pole měsíce je posloupnost, která odpovídá nejdelší sadě sekvencí specifických pro národní prostředí, jako je jan, leden, únor, únor atd. Převedená hodnota je počet měsíců od ledna.

Příklad

Podívejte se na příklad get_monthname, který volá do_get_monthname.

time_get::d o_get_time

Chráněná virtuální členová funkce, která je volána k analýze řetězce jako data vytvořeného specifikátorem X pro strftime.

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

Parametry

první
Vstupní iterátor adresovaný začátek sekvence, který se má převést.

poslední
Vstupní iterátor adresovaný na konec sekvence, který se má převést.

iosbase
Nepoužívá se.

state
Nastaví příslušné prvky bitové masky pro stav datového proudu podle toho, jestli operace proběhly úspěšně.

ptm
Ukazatel na místo, kde mají být uloženy informace o datu.

Návratová hodnota

Vstupní iterátor adresuje první prvek mimo vstupní pole.

Poznámky

Virtuální chráněná členová funkce se pokusí nejprve shodovat sekvenční prvky začínající v sekvenci [ , firstlast), dokud nerozpozná úplné, neprázdné časové vstupní pole. V případě úspěchu převede toto pole na jeho ekvivalentní hodnotu jako komponenty tm::tm_hour, tm::tm_mina tm::tm_sec, a uloží výsledky v ptm->tm_hour, ptm->tm_mina ptm->tm_sec, v uvedeném pořadí. Vrátí iterátor označující první prvek nad rámec časového vstupního pole. V opačném případě se funkce nastaví ios_base::failbit ve stavu. Vrátí iterátor označující první prvek nad rámec jakékoli předpony platného časového vstupního pole. V obou případech platí, že pokud se vrácená hodnota rovná poslední, funkce se nastaví ios_base::eofbit ve stavu.

V této implementaci má vstupní pole času tvar HH:MM:SS, kde:

  • HH je posloupnost desetinných číslic, jejichž odpovídající číselná hodnota musí být v rozsahu [0, 24) a poskytuje hodinu dne.

  • MM je posloupnost desetinných číslic, jejichž odpovídající číselná hodnota musí být v rozsahu [0, 60) a poskytuje minuty za hodinu.

  • SS je posloupnost desetinných číslic, jejichž odpovídající číselná hodnota musí být v rozsahu [0, 60), přičemž sekundy za minutu.

Literální dvojtečky musí odpovídat odpovídajícím prvkům ve vstupní sekvenci.

Příklad

Podívejte se na příklad get_time, který volá do_get_time.

time_get::d o_get_weekday

Chráněná virtuální členská funkce, která je volána k analýze řetězce jako názvu týdnu.

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

Parametry

první
Vstupní iterátor adresovaný začátek sekvence, který se má převést.

poslední
Vstupní iterátor adresovaný na konec sekvence, který se má převést.

iosbase
Příznak formátu, který při nastavení označuje, že symbol měny je volitelný; v opačném případě se vyžaduje.

state
Nastaví příslušné prvky bitové masky pro stav datového proudu podle toho, jestli operace proběhly úspěšně.

ptm
Ukazatel na místo, kde mají být uloženy informace o pracovní dny.

Návratová hodnota

Vstupní iterátor adresuje první prvek mimo vstupní pole.

Poznámky

Virtuální chráněná členová funkce se pokusí nejprve shodovat sekvenční prvky začínající v sekvenci [ first, last), dokud nerozpozná úplné, neprázdné vstupní pole v týdnu. V případě úspěchu převede toto pole na ekvivalentní hodnotu jako součást tm::tm_wday a uloží výsledek do ptm->tm_wday. Vrátí iterátor označující první prvek mimo vstupní pole v pracovní dny. V opačném případě se funkce nastaví ios_base::failbit ve stavu. Vrátí iterátor označující první prvek nad rámec jakékoli předpony platného vstupního pole dne v týdnu. V obou případech platí, že pokud se vrácená hodnota rovná poslední, funkce se nastaví ios_base::eofbit ve stavu.

Vstupní pole dne v týdnu je posloupnost, která odpovídá nejdelší sadě sekvencí specifických pro národní prostředí, jako je Sun, Sunday, Mon, Monday atd. Převedená hodnota je počet dní od neděle.

Příklad

Podívejte se na příklad pro get_weekday, která volá do_get_weekday.

time_get::d o_get_year

Chráněná virtuální členská funkce, která je volána k analýze řetězce jako názvu roku.

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

Parametry

první
Vstupní iterátor adresovaný začátek sekvence, který se má převést.

poslední
Vstupní iterátor adresovaný na konec sekvence, který se má převést.

iosbase
Příznak formátu, který při nastavení označuje, že symbol měny je volitelný; v opačném případě se vyžaduje.

state
Nastaví příslušné prvky bitové masky pro stav datového proudu podle toho, jestli operace proběhly úspěšně.

ptm
Ukazatel na místo, kde mají být uloženy informace o roce.

Návratová hodnota

Vstupní iterátor adresuje první prvek mimo vstupní pole.

Poznámky

Virtuální chráněná členová funkce se pokusí nejprve shodovat sekvenční prvky začínající v sekvenci [ , firstlast), dokud nerozpozná úplné, neprázdné rok vstupní pole. V případě úspěchu převede toto pole na ekvivalentní hodnotu jako součást tm::tm_year a uloží výsledek do ptm->tm_year. Vrátí iterátor označující první prvek nad rámec vstupního pole roku. V opačném případě se funkce nastaví ios_base::failbit ve stavu. Vrátí iterátor označující první prvek nad rámec jakékoli předpony platného vstupního pole roku. V obou případech platí, že pokud se vrácená hodnota rovná poslední, funkce se nastaví ios_base::eofbit ve stavu.

Vstupní pole roku je posloupnost desetinných číslic, jejichž odpovídající číselná hodnota musí být v rozsahu [1900, 2036). Uložená hodnota je tato hodnota minus 1900. V této implementaci představují hodnoty v rozsahu [69, 136) rozsah roků [1969, 2036). Hodnoty v rozsahu [0, 69) jsou také přípustné, ale mohou představovat rozsah let [1900, 1969) nebo [2000, 2069) v závislosti na konkrétním prostředí překladu.

Příklad

Podívejte se na příklad get_year, který volá do_get_year.

time_get::get

Čte ze zdroje data znaků a převede je na čas, který je uložen v časové struktuře. První funkce přijímá jeden specifikátor převodu a modifikátor, druhá přijímá několik.

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;

Parametry

první
Vstupní iterátor označující, kde má být sekvence převedena.

poslední
Vstupní iterátor, který označuje konec sekvence, která se má převést.

iosbase
Stream.

state
Příslušné prvky masky bitů jsou nastaveny pro stav datového proudu označující chyby.

ptm
Ukazatel na strukturu času, ve které má být čas uložen.

Fmt
Specifikátor převodu.

zkratka modulo
Volitelný modifikační znak.

fmt_first
Odkazuje na místo, kde začínají direktivy formátu.

fmt_last
Odkazuje na konec direktiv formátu.

Návratová hodnota

Vrátí iterátor na první znak za daty, která byla použita k přiřazení časové struktury *ptm.

Poznámky

První členová funkce vrátí do_get(first, last, iosbase, state, ptm, fmt, mod)hodnotu .

Druhá členová funkce volá do_get pod kontrolou formátu odděleného znakem [fmt_first, fmt_last). Zpracovává formát jako posloupnost polí, z nichž každý určuje převod nulových nebo více vstupních prvků oddělených [first, last). Vrátí iterátor označující první nekonvertovaný prvek. Existují tři druhy polí:

Procento (%) ve formátu následované volitelným modifikačním modifikátorem v sadě [EOQ#], následovaný specifikátorem převodu fmt, nahradí nejprve hodnotou vrácenou do_get(first, last, iosbase, state, ptm, fmt, mod). Selhání převodu se nastaví ios_base::failbit ve stavu a vrátí.

Prázdný prvek ve formátu přeskočí za nula nebo více vstupních prázdných prvků.

Jakýkoli jiný prvek ve formátu se musí shodovat s dalším vstupním prvkem, který se přeskočí. Sada selhání ios_base::failbit shody ve stavu a vrátí hodnotu.

time_get::get_date

Parsuje řetězec jako datum vytvořené specifikátorem x pro strftime.

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

Parametry

první
Vstupní iterátor adresovaný začátek sekvence, který se má převést.

poslední
Vstupní iterátor adresovaný na konec sekvence, který se má převést.

iosbase
Příznak formátu, který při nastavení označuje, že symbol měny je volitelný; v opačném případě se vyžaduje.

state
Nastaví příslušné prvky bitové masky pro stav datového proudu podle toho, jestli operace proběhly úspěšně.

ptm
Ukazatel na místo, kde mají být uloženy informace o datu.

Návratová hodnota

Vstupní iterátor adresuje první prvek mimo vstupní pole.

Poznámky

Členová funkce vrátí do_get_date(first, last, iosbase, state, ptm).

Všimněte si, že měsíce se počítají od 0 do 11.

Příklad

// 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

Analyzuje řetězec jako název měsíce.

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

Parametry

první
Vstupní iterátor adresovaný začátek sekvence, který se má převést.

poslední
Vstupní iterátor adresovaný na konec sekvence, který se má převést.

iosbase
Nepoužívá se.

state
Výstupní parametr, který nastaví příslušné prvky masky bitu pro stav datového proudu podle toho, jestli operace proběhly úspěšně.

ptm
Ukazatel na místo, kde mají být uloženy informace o měsíci.

Návratová hodnota

Vstupní iterátor adresuje první prvek mimo vstupní pole.

Poznámky

Členová funkce vrátí do_get_monthname(first, last, iosbase, state, ptm).

Příklad

// 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

Parsuje řetězec jako datum vytvořené specifikátorem X pro strftime.

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

Parametry

první
Vstupní iterátor adresovaný začátek sekvence, který se má převést.

poslední
Vstupní iterátor adresovaný na konec sekvence, který se má převést.

iosbase
Nepoužívá se.

state
Nastaví příslušné prvky bitové masky pro stav datového proudu podle toho, jestli operace proběhly úspěšně.

ptm
Ukazatel na místo, kde mají být uloženy informace o datu.

Návratová hodnota

Vstupní iterátor adresuje první prvek mimo vstupní pole.

Poznámky

Členová funkce vrátí do_get_time(first, last, iosbase, state, ptm).

Příklad

// 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

Analyzuje řetězec jako název dne v týdnu.

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

Parametry

první
Vstupní iterátor adresovaný začátek sekvence, který se má převést.

poslední
Vstupní iterátor adresovaný na konec sekvence, který se má převést.

iosbase
Příznak formátu, který při nastavení označuje, že symbol měny je volitelný; v opačném případě se vyžaduje.

state
Nastaví příslušné prvky bitové masky pro stav datového proudu podle toho, jestli operace proběhly úspěšně.

ptm
Ukazatel na místo, kde mají být uloženy informace o pracovní dny.

Návratová hodnota

Vstupní iterátor adresuje první prvek mimo vstupní pole.

Poznámky

Členová funkce vrátí do_get_weekday(first, last, iosbase, state, ptm).

Příklad

// 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

Analyzuje řetězec jako název roku.

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

Parametry

první
Vstupní iterátor adresovaný začátek sekvence, který se má převést.

poslední
Vstupní iterátor adresovaný na konec sekvence, který se má převést.

iosbase
Příznak formátu, který při nastavení označuje, že symbol měny je volitelný; v opačném případě se vyžaduje.

state
Nastaví příslušné prvky bitové masky pro stav datového proudu podle toho, jestli operace proběhly úspěšně.

ptm
Ukazatel na místo, kde mají být uloženy informace o roce.

Návratová hodnota

Vstupní iterátor adresuje první prvek mimo vstupní pole.

Poznámky

Členová funkce vrátí do_get_year(first, last, iosbase, state, ptm).

Příklad

// 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

Typ, který popisuje vstupní iterátor.

typedef InputIterator iter_type;

Poznámky

Typ je synonymem parametru šablony InputIterator.

time_get::time_get

Konstruktor pro objekty typu time_get.

explicit time_get(size_t refs = 0);

Parametry

Refs
Celočíselná hodnota použitá k určení typu správy paměti pro objekt.

Poznámky

Možné hodnoty parametru refs a jejich významnosti jsou:

  • 0: Životnost objektu je spravována národními prostředími, které ho obsahují.

  • 1: Životnost objektu musí být spravována ručně.

  • > 1: Tyto hodnoty nejsou definovány.

Nejsou možné žádné přímé příklady, protože destruktor je chráněn.

Konstruktor inicializuje svůj základní objekt s národním prostředím ::facet(refs).

Viz také

<locale>
time_base – třída
Bezpečný přístup z více vláken ve standardní knihovně C++