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 [ , first
last
), 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_day
a 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 [ , first
last
), 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 [ , first
last
), 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_min
a tm::tm_sec
, a uloží výsledky v ptm->tm_hour
, ptm->tm_min
a 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 [ , first
last
), 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++