time_get — Klasa
Szablon klasy opisuje obiekt, który może służyć jako aspekt ustawień regionalnych do kontrolowania konwersji sekwencji typu CharType
na wartości czasu.
Składnia
template <class CharType,
class InputIterator = istreambuf_iterator<CharType>>
class time_get : public time_base;
Parametry
Typ char
Typ używany w programie do kodowania znaków.
InputIterator
Iterator, z którego są odczytywane wartości czasu.
Uwagi
Podobnie jak w przypadku dowolnego zestawu reguł ustawień regionalnych, identyfikator obiektu statycznego ma początkową przechowywaną wartość zero. Pierwsza próba uzyskania dostępu do przechowywanej wartości przechowuje unikatową wartość dodatnią w identyfikatorze.
Konstruktory
Konstruktor | opis |
---|---|
time_get | Konstruktor dla obiektów typu time_get . |
Typedefs
Nazwa typu | opis |
---|---|
char_type | Typ opisujący znak używany przez ustawienie regionalne. |
iter_type | Typ, który opisuje iterator danych wejściowych. |
Funkcje składowe
Funkcja składowa | opis |
---|---|
date_order | Zwraca kolejność dat używaną przez zestaw reguł. |
do_date_order | Chroniona funkcja wirtualna elementu członkowskiego, wywoływana, aby zwrócić kolejność dat używaną przez zestaw reguł. |
do_get | Odczytuje i konwertuje dane znakowe na wartość czasu. |
do_get_date | Chroniona funkcja wirtualna elementu członkowskiego wywoływana w celu przeanalizowania ciągu jako daty wygenerowanej x przez specyfikator dla elementu strftime . |
do_get_monthname | Chroniona funkcja wirtualna elementu członkowskiego, która jest wywoływana, aby przeanalizować ciąg jako nazwę miesiąca. |
do_get_time | Chroniona funkcja wirtualna elementu członkowskiego wywoływana w celu przeanalizowania ciągu jako daty wygenerowanej X przez specyfikator dla elementu strftime . |
do_get_weekday | Chroniona funkcja wirtualna elementu członkowskiego, która jest wywoływana, aby przeanalizować ciąg jako nazwę dnia tygodnia. |
do_get_year | Chroniona funkcja wirtualna elementu członkowskiego, która jest wywoływana, aby przeanalizować ciąg jako nazwę roku. |
get | Odczytuje ze źródła danych znakowych i konwertuje te dane na czas, który jest przechowywany w strukturze czasu. |
get_date | Analizuje ciąg jako datę wygenerowaną x przez specyfikator .strftime |
get_monthname | Analizuje ciąg jako nazwę miesiąca. |
get_time | Analizuje ciąg jako datę wygenerowaną X przez specyfikator .strftime |
get_weekday | Analizuje ciąg jako nazwę dnia tygodnia. |
get_year | Analizuje ciąg jako nazwę roku. |
Wymagania
Nagłówek:<ustawienia regionalne>
Przestrzeń nazw: std
time_get::char_type
Typ opisujący znak używany przez ustawienie regionalne.
typedef CharType char_type;
Uwagi
Typ jest synonimem parametru CharType szablonu.
time_get::d ate_order
Zwraca kolejność dat używaną przez zestaw reguł.
dateorder date_order() const;
Wartość zwracana
Kolejność dat używana przez zestaw reguł.
Uwagi
Funkcja składowa zwraca do_date_order.
Przykład
// 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
Chroniona funkcja wirtualna elementu członkowskiego, wywoływana, aby zwrócić kolejność dat używaną przez zestaw reguł.
virtual dateorder do_date_order() const;
Wartość zwracana
Kolejność dat używana przez zestaw reguł.
Uwagi
Funkcja wirtualnego chronionego elementu członkowskiego zwraca wartość typu time_base::d ateorder, która opisuje kolejność dopasowania składników daty przez do_get_date. W tej implementacji wartość jest time_base::mdy odpowiadająca datom formularza 2 grudnia 1979 r.
Przykład
Zobacz przykład date_order, który wywołuje metodę do_date_order
.
time_get::d o_get
Odczytuje i konwertuje dane znakowe na wartość czasu. Akceptuje jeden specyfikator konwersji i modyfikator.
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
pierwszy
Iterator danych wejściowych wskazujący początek sekwencji do przekonwertowania.
ostatni
Iterator danych wejściowych wskazujący koniec sekwencji.
iosbase
Obiekt strumienia.
state
Pole w bazie iosbase, w którym odpowiednie elementy maski bitów są ustawione tak, aby wskazywały błędy.
ptm
Wskaźnik do struktury czasu, w której ma być przechowywany czas.
Fmt
Znak specyfikatora konwersji.
mod
Opcjonalny znak modyfikatora.
Wartość zwracana
Zwraca iterator, który wyznacza pierwszy niekonwertowany element. Błąd konwersji ustawia element ios_base::failbit
state
i zwraca wartość pierwszą.
Uwagi
Funkcja wirtualna składowa konwertuje i pomija jeden lub więcej elementów wejściowych w zakresie [first
, last
), aby określić wartości przechowywane w co najmniej jednym elemencie członkowskim *pt
. Błąd konwersji ustawia element ios_base::failbit
state
i zwraca wartość pierwszą. W przeciwnym razie funkcja zwraca iterator wyznaczający pierwszy niekonwertowany element.
Specyfikatory konwersji to:
'a'
lub 'A'
— zachowuje się tak samo jak time_get::get_weekday.
'b'
, 'B'
lub 'h'
- zachowuje się tak samo jak time_get::get_monthname.
'c'
-- zachowuje się tak samo jak "%b %d %H : %M : %S %Y"
.
'C'
-- konwertuje pole wejściowe dziesiętne w zakresie [0, 99] na wartość val
i przechowuje val * 100 - 1900
w pliku pt-&tm_year
.
'd'
lub 'e'
— konwertuje pole wejściowe dziesiętne w zakresie [1, 31] i przechowuje jego wartość w .pt-&tm_mday
'D'
-- zachowuje się tak samo jak "%m / %d / %y"
.
'H'
-- konwertuje pole wejściowe dziesiętne w zakresie [0, 23] i przechowuje jego wartość w .pt-&tm_hour
'I'
-- konwertuje pole wejściowe dziesiętne w zakresie [0, 11] i przechowuje jego wartość w .pt-&tm_hour
'j'
-- konwertuje pole wejściowe dziesiętne w zakresie [1, 366] i przechowuje jego wartość w pt-&tm_yday
.
'm'
-- konwertuje pole wejściowe dziesiętne w zakresie [1, 12] na wartość val
i przechowuje w pliku i przechowuje val - 1
jego wartość w pt-&tm_mon
.
'M'
-- konwertuje pole wejściowe dziesiętne w zakresie [0, 59] i przechowuje jego wartość w pt-&tm_min
.
'n'
lub 't'
— zachowuje się tak samo jak " "
.
'p'
-- konwertuje wartości "AM" lub "am" na zero i "PM" lub "PM" na 12 i dodaje tę wartość do pt-&tm_hour
.
'r'
-- zachowuje się tak samo jak "%I : %M : %S %p"
.
'R'
-- zachowuje się tak samo jak "%H %M"
.
'S'
-- konwertuje pole wejściowe dziesiętne w zakresie [0, 59] i przechowuje jego wartość w pt-&tm_sec
.
'T'
lub 'X'
— zachowuje się tak samo jak "%H : %M : S"
.
'U'
-- konwertuje pole wejściowe dziesiętne w zakresie [0, 53] i przechowuje jego wartość w pt-&tm_yday
.
'w'
-- konwertuje pole wejściowe dziesiętne w zakresie [0, 6] i przechowuje jego wartość w pt-&tm_wday
.
'W'
-- konwertuje pole wejściowe dziesiętne w zakresie [0, 53] i przechowuje jego wartość w pt-&tm_yday
.
'x'
-- zachowuje się tak samo jak "%d / %m / %y"
.
'y'
-- konwertuje pole wejściowe dziesiętne w zakresie [0, 99] na wartość val
i przechowuje val < 69 val + 100 : val
w pliku pt-&tm_year
.
'Y'
-- zachowuje się tak samo jak time_get::get_year.
Wszystkie inne zestawy ios_base::failbit
specyfikatora konwersji w state
i zwracane. W tej implementacji żaden modyfikator nie ma wpływu.
time_get::d o_get_date
Chroniona funkcja wirtualna elementu członkowskiego, która jest wywoływana, aby przeanalizować ciąg jako datę wygenerowaną przez specyfikator x dla strftime
.
virtual iter_type do_get_date(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parametry
pierwszy
Iterator wejściowy odnoszący się do początku sekwencji, która ma zostać przekonwertowana.
ostatni
Iterator wejściowy odnoszący się do końca sekwencji, która ma zostać przekonwertowana.
iosbase
Flaga formatu, która po ustawieniu wskazuje, że symbol waluty jest opcjonalny; w przeciwnym razie jest to wymagane.
state
Ustawia odpowiednie elementy maski bitów dla stanu strumienia zgodnie z tym, czy operacje zakończyły się pomyślnie.
ptm
Wskaźnik, w którym mają być przechowywane informacje o dacie.
Wartość zwracana
Iterator wejściowy odnoszący się do pierwszego elementu poza polem wejściowym.
Uwagi
Wirtualna chroniona funkcja składowa próbuje dopasować elementy sekwencyjne rozpoczynające się na początku w sekwencji [ first
, last
), dopóki nie rozpozna kompletnego, nieistnienego pola wejściowego daty. Jeśli to pole zakończy się pomyślnie, przekonwertuje to pole na równoważną wartość jako składniki tm::tm_mon, tm::tm_day i tm::tm_year, a wyniki są przechowywane odpowiednio w ptm->tm_mon
plikach , ptm->tm_day
i ptm->tm_year
. Zwraca iterator wyznaczający pierwszy element poza polem wejściowym daty. W przeciwnym razie funkcja ustawia stan iosbase::failbit
. Zwraca iterator wyznaczający pierwszy element poza dowolnym prefiksem prawidłowego pola wejściowego daty. W obu przypadkach, jeśli wartość zwracana jest ostatnia, funkcja ustawia ios_base::eofbit
stan.
Format pola wejściowego daty jest zależny od ustawień regionalnych. Dla domyślnych ustawień regionalnych pole danych wejściowych daty ma formę MMM DD, RRRR, gdzie:
MmM jest dopasowywany przez wywołanie get_monthname, dając miesiąc.
DD to sekwencja cyfr dziesiętnych, których odpowiadająca wartość liczbowa musi znajdować się w zakresie [1, 31], dając dzień miesiąca.
RRRR jest dopasowywany przez wywołanie get_year, dając rok.
Spacje literału i przecinki muszą być zgodne z odpowiednimi elementami w sekwencji danych wejściowych.
Przykład
Zobacz przykład get_date, który wywołuje metodę do_get_date
.
time_get::d o_get_monthname
Chroniona funkcja wirtualna elementu członkowskiego, która jest wywoływana, aby przeanalizować ciąg jako nazwę miesiąca.
virtual iter_type do_get_monthname(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parametry
pierwszy
Iterator wejściowy odnoszący się do początku sekwencji, która ma zostać przekonwertowana.
ostatni
Iterator wejściowy odnoszący się do końca sekwencji, która ma zostać przekonwertowana.
iosbase
Nieużywany.
state
Parametr wyjściowy, który ustawia odpowiednie elementy maski bitów dla stanu strumienia zgodnie z tym, czy operacje zakończyły się pomyślnie.
ptm
Wskaźnik, w którym mają być przechowywane informacje o miesiącu.
Wartość zwracana
Iterator wejściowy odnoszący się do pierwszego elementu poza polem wejściowym.
Uwagi
Wirtualna chroniona funkcja składowa próbuje dopasować elementy sekwencyjne rozpoczynające się na początku w sekwencji [ first
, last
), dopóki nie rozpozna kompletnego, nieistnienego pola wejściowego miesiąca. Jeśli to pole zakończy się pomyślnie, przekonwertuje to pole na równoważną wartość jako składnik tm::tm_mon i zapisuje wynik w elemencie ptm->tm_mon
. Zwraca iterator wyznaczający pierwszy element poza polem wejściowym miesiąca. W przeciwnym razie funkcja ustawia stan ios_base::failbit
. Zwraca iterator wyznaczający pierwszy element poza dowolnym prefiksem prawidłowego pola wejściowego miesiąca. W obu przypadkach, jeśli wartość zwracana jest ostatnia, funkcja ustawia ios_base::eofbit
stan.
Pole danych wejściowych miesiąca jest sekwencją zgodną z najdłuższym zestawem sekwencji specyficznych dla ustawień regionalnych, takich jak Jan, Styczeń, Luty, Luty itd. Przekonwertowana wartość to liczba miesięcy od stycznia.
Przykład
Zobacz przykład get_monthname, który wywołuje metodę do_get_monthname
.
time_get::d o_get_time
Chroniona funkcja wirtualna elementu członkowskiego wywoływana w celu przeanalizowania ciągu jako daty wygenerowanej przez specyfikator X dla elementu strftime
.
virtual iter_type do_get_time(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parametry
pierwszy
Iterator wejściowy odnoszący się do początku sekwencji, która ma zostać przekonwertowana.
ostatni
Iterator wejściowy odnoszący się do końca sekwencji, która ma zostać przekonwertowana.
iosbase
Nieużywany.
state
Ustawia odpowiednie elementy maski bitów dla stanu strumienia zgodnie z tym, czy operacje zakończyły się pomyślnie.
ptm
Wskaźnik, w którym mają być przechowywane informacje o dacie.
Wartość zwracana
Iterator wejściowy odnoszący się do pierwszego elementu poza polem wejściowym.
Uwagi
Wirtualna chroniona funkcja składowa próbuje dopasować elementy sekwencyjne rozpoczynające się na początku w sekwencji [ first
, last
), dopóki nie rozpozna kompletnego, nieistnienego pola wejściowego czasu. Jeśli to pole zakończy się pomyślnie, konwertuje to pole na równoważną wartość jako składniki tm::tm_hour
, tm::tm_min
i tm::tm_sec
, i przechowuje wyniki odpowiednio w ptm->tm_hour
parametrach , ptm->tm_min
i ptm->tm_sec
. Zwraca iterator wyznaczający pierwszy element poza polem wprowadzania czasu. W przeciwnym razie funkcja ustawia stan ios_base::failbit
. Zwraca iterator wyznaczający pierwszy element poza dowolnym prefiksem prawidłowego pola wejściowego czasu. W obu przypadkach, jeśli wartość zwracana jest ostatnia, funkcja ustawia ios_base::eofbit
stan.
W tej implementacji pole wprowadzania czasu ma postać HH:MM:SS, gdzie:
HH to sekwencja cyfr dziesiętnych, których odpowiadająca mu wartość liczbowa musi znajdować się w zakresie [0, 24), dając godzinę dnia.
MM to sekwencja cyfr dziesiętnych, których odpowiadająca mu wartość liczbowa musi znajdować się w zakresie [0, 60), co daje minuty po godzinie.
SS to sekwencja cyfr dziesiętnych, których odpowiadająca wartość liczbowa musi znajdować się w zakresie [0, 60), dając sekundy po minucie.
Dwukropki literału muszą być zgodne z odpowiednimi elementami w sekwencji danych wejściowych.
Przykład
Zobacz przykład get_time, który wywołuje metodę do_get_time
.
time_get::d o_get_weekday
Chroniona funkcja wirtualna elementu członkowskiego, która jest wywoływana, aby przeanalizować ciąg jako nazwę dnia tygodnia.
virtual iter_type do_get_weekday(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parametry
pierwszy
Iterator wejściowy odnoszący się do początku sekwencji, która ma zostać przekonwertowana.
ostatni
Iterator wejściowy odnoszący się do końca sekwencji, która ma zostać przekonwertowana.
iosbase
Flaga formatu, która po ustawieniu wskazuje, że symbol waluty jest opcjonalny; w przeciwnym razie jest to wymagane.
state
Ustawia odpowiednie elementy maski bitów dla stanu strumienia zgodnie z tym, czy operacje zakończyły się pomyślnie.
ptm
Wskaźnik, do którego mają być przechowywane informacje dnia tygodnia.
Wartość zwracana
Iterator wejściowy odnoszący się do pierwszego elementu poza polem wejściowym.
Uwagi
Wirtualna chroniona funkcja składowa próbuje dopasować elementy sekwencyjne rozpoczynające się na początku w sekwencji [ first
, last
), dopóki nie rozpozna kompletnego, nieistnienego pola wejściowego dnia powszedniego. Jeśli to pole zakończy się pomyślnie, przekonwertuje to pole na równoważną wartość jako składnik tm::tm_wday i zapisuje wynik w elemencie ptm->tm_wday
. Zwraca iterator wyznaczający pierwszy element poza polem wejściowym dnia tygodnia. W przeciwnym razie funkcja ustawia stan ios_base::failbit
. Zwraca iterator wyznaczający pierwszy element poza prefiksem prawidłowego pola wejściowego dnia tygodnia. W obu przypadkach, jeśli wartość zwracana jest ostatnia, funkcja ustawia ios_base::eofbit
stan.
Pole wejściowe dni powszednie to sekwencja zgodna z najdłuższym zestawem sekwencji specyficznych dla ustawień regionalnych, takich jak Sun, Sunday, Mon, Monday itd. Przekonwertowana wartość to liczba dni od niedzieli.
Przykład
Zobacz przykład get_weekday, który wywołuje metodę do_get_weekday
.
time_get::d o_get_year
Chroniona funkcja wirtualna elementu członkowskiego, która jest wywoływana, aby przeanalizować ciąg jako nazwę roku.
virtual iter_type do_get_year(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parametry
pierwszy
Iterator wejściowy odnoszący się do początku sekwencji, która ma zostać przekonwertowana.
ostatni
Iterator wejściowy odnoszący się do końca sekwencji, która ma zostać przekonwertowana.
iosbase
Flaga formatu, która po ustawieniu wskazuje, że symbol waluty jest opcjonalny; w przeciwnym razie jest to wymagane.
state
Ustawia odpowiednie elementy maski bitów dla stanu strumienia zgodnie z tym, czy operacje zakończyły się pomyślnie.
ptm
Wskaźnik, w którym mają być przechowywane informacje o roku.
Wartość zwracana
Iterator wejściowy odnoszący się do pierwszego elementu poza polem wejściowym.
Uwagi
Wirtualna chroniona funkcja składowa próbuje dopasować elementy sekwencyjne rozpoczynające się na początku w sekwencji [ first
, last
), dopóki nie rozpozna kompletnego, nieistnienego pola wejściowego roku. Jeśli to pole zakończy się pomyślnie, przekonwertuje to pole na równoważną wartość jako składnik tm::tm_year i zapisuje wynik w elemencie ptm->tm_year
. Zwraca iterator wyznaczający pierwszy element poza polem wejściowym roku. W przeciwnym razie funkcja ustawia stan ios_base::failbit
. Zwraca iterator wyznaczający pierwszy element poza dowolnym prefiksem prawidłowego pola wejściowego roku. W obu przypadkach, jeśli wartość zwracana jest ostatnia, funkcja ustawia ios_base::eofbit
stan.
Pole wejściowe roku jest sekwencją cyfr dziesiętnych, których odpowiadająca wartość liczbowa musi znajdować się w zakresie [1900, 2036). Przechowywana wartość to ta wartość minus 1900. W tej implementacji wartości w zakresie [69, 136) reprezentują zakres lat [1969, 2036). Wartości w zakresie [0, 69) są również dopuszczalne, ale mogą reprezentować zakres lat [1900, 1969) lub [2000, 2069), w zależności od określonego środowiska tłumaczenia.
Przykład
Zobacz przykład get_year, który wywołuje metodę do_get_year
.
time_get::get
Odczytuje ze źródła danych znakowych i konwertuje te dane na czas, który jest przechowywany w strukturze czasu. Pierwsza funkcja akceptuje jeden specyfikator konwersji i modyfikator, drugi akceptuje kilka.
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
pierwszy
Iterator wejściowy wskazujący, gdzie rozpoczyna się sekwencja do przekonwertowania.
ostatni
Iterator wejściowy wskazujący koniec sekwencji do przekonwertowania.
iosbase
Strumień.
state
Odpowiednie elementy maski bitów są ustawiane dla stanu strumienia w celu wskazania błędów.
ptm
Wskaźnik do struktury czasu, w której ma być przechowywany czas.
Fmt
Znak specyfikatora konwersji.
mod
Opcjonalny znak modyfikatora.
fmt_first
Wskazuje, gdzie zaczynają się dyrektywy formatu.
fmt_last
Wskazuje na koniec dyrektyw formatu.
Wartość zwracana
Zwraca iterator do pierwszego znaku po danych użytych do przypisania struktury *ptm
czasu .
Uwagi
Pierwsza funkcja składowa zwraca wartość do_get(first, last, iosbase, state, ptm, fmt, mod)
.
Druga funkcja składowa wywołuje do_get
pod kontrolą formatu rozdzielanego przez [fmt_first, fmt_last)
. Traktuje format jako sekwencję pól, z których każda określa konwersję zero lub więcej elementów wejściowych rozdzielonych przez [first, last)
. Zwraca iterator wyznaczający pierwszy niekonwertowany element. Istnieją trzy rodzaje pól:
Procent (%) w formacie, a następnie opcjonalny modyfikator w zestawie [EOQ#], a następnie specyfikator konwersji fmt, zastępuje najpierw wartość zwracaną przez do_get(first, last, iosbase, state, ptm, fmt, mod)
. Błąd konwersji ustawia ios_base::failbit
stan i zwraca.
Element odstępu w formacie pomija ostatnie zero lub więcej elementów białych znaków wejściowych.
Każdy inny element w formacie musi być zgodny z następnym elementem wejściowym, który jest pomijany. Niepowodzenie dopasowania ustawia ios_base::failbit
stan i zwraca wartość.
time_get::get_date
Analizuje ciąg jako datę wygenerowaną przez specyfikator x dla elementu strftime
.
iter_type get_date(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parametry
pierwszy
Iterator wejściowy odnoszący się do początku sekwencji, która ma zostać przekonwertowana.
ostatni
Iterator wejściowy odnoszący się do końca sekwencji, która ma zostać przekonwertowana.
iosbase
Flaga formatu, która po ustawieniu wskazuje, że symbol waluty jest opcjonalny; w przeciwnym razie jest to wymagane.
state
Ustawia odpowiednie elementy maski bitów dla stanu strumienia zgodnie z tym, czy operacje zakończyły się pomyślnie.
ptm
Wskaźnik, w którym mają być przechowywane informacje o dacie.
Wartość zwracana
Iterator wejściowy odnoszący się do pierwszego elementu poza polem wejściowym.
Uwagi
Funkcja składowa zwraca wartość do_get_date(first
, last
, iosbase
, state
). ptm
Należy pamiętać, że miesiące są liczone z zakresu od 0 do 11.
Przykład
// 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
Analizuje ciąg jako nazwę miesiąca.
iter_type get_monthname(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parametry
pierwszy
Iterator wejściowy odnoszący się do początku sekwencji, która ma zostać przekonwertowana.
ostatni
Iterator wejściowy odnoszący się do końca sekwencji, która ma zostać przekonwertowana.
iosbase
Nieużywany.
state
Parametr wyjściowy, który ustawia odpowiednie elementy maski bitów dla stanu strumienia zgodnie z tym, czy operacje zakończyły się pomyślnie.
ptm
Wskaźnik, w którym mają być przechowywane informacje o miesiącu.
Wartość zwracana
Iterator wejściowy odnoszący się do pierwszego elementu poza polem wejściowym.
Uwagi
Funkcja składowa zwraca do_get_monthname(first
, last
, iosbase
, state
ptm
).
Przykład
// 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
Analizuje ciąg jako datę wygenerowaną przez specyfikator X dla elementu strftime
.
iter_type get_time(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parametry
pierwszy
Iterator wejściowy odnoszący się do początku sekwencji, która ma zostać przekonwertowana.
ostatni
Iterator wejściowy odnoszący się do końca sekwencji, która ma zostać przekonwertowana.
iosbase
Nieużywany.
state
Ustawia odpowiednie elementy maski bitów dla stanu strumienia zgodnie z tym, czy operacje zakończyły się pomyślnie.
ptm
Wskaźnik, w którym mają być przechowywane informacje o dacie.
Wartość zwracana
Iterator wejściowy odnoszący się do pierwszego elementu poza polem wejściowym.
Uwagi
Funkcja składowa zwraca do_get_time(first
, last
, iosbase
, state
). ptm
Przykład
// 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
Analizuje ciąg jako nazwę dnia tygodnia.
iter_type get_weekday(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parametry
pierwszy
Iterator wejściowy odnoszący się do początku sekwencji, która ma zostać przekonwertowana.
ostatni
Iterator wejściowy odnoszący się do końca sekwencji, która ma zostać przekonwertowana.
iosbase
Flaga formatu, która po ustawieniu wskazuje, że symbol waluty jest opcjonalny; w przeciwnym razie jest to wymagane.
state
Ustawia odpowiednie elementy maski bitów dla stanu strumienia zgodnie z tym, czy operacje zakończyły się pomyślnie.
ptm
Wskaźnik, do którego mają być przechowywane informacje dnia tygodnia.
Wartość zwracana
Iterator wejściowy odnoszący się do pierwszego elementu poza polem wejściowym.
Uwagi
Funkcja składowa zwraca do_get_weekday(first
, last
, iosbase
, state
). ptm
Przykład
// 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
Analizuje ciąg jako nazwę roku.
iter_type get_year(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parametry
pierwszy
Iterator wejściowy odnoszący się do początku sekwencji, która ma zostać przekonwertowana.
ostatni
Iterator wejściowy odnoszący się do końca sekwencji, która ma zostać przekonwertowana.
iosbase
Flaga formatu, która po ustawieniu wskazuje, że symbol waluty jest opcjonalny; w przeciwnym razie jest to wymagane.
state
Ustawia odpowiednie elementy maski bitów dla stanu strumienia zgodnie z tym, czy operacje zakończyły się pomyślnie.
ptm
Wskaźnik, w którym mają być przechowywane informacje o roku.
Wartość zwracana
Iterator wejściowy odnoszący się do pierwszego elementu poza polem wejściowym.
Uwagi
Funkcja składowa zwraca do_get_year(first
, last
, iosbase
, state
ptm
).
Przykład
// 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, który opisuje iterator danych wejściowych.
typedef InputIterator iter_type;
Uwagi
Typ jest synonimem parametru szablonu InputIterator.
time_get::time_get
Konstruktor dla obiektów typu time_get
.
explicit time_get(size_t refs = 0);
Parametry
Bibl.
Wartość całkowita używana do określania typu zarządzania pamięcią dla obiektu.
Uwagi
Możliwe wartości parametru refs i ich istotności to:
0: Okres istnienia obiektu jest zarządzany przez ustawienia regionalne, które go zawierają.
1: Okres istnienia obiektu musi być zarządzany ręcznie.
> 1: Te wartości nie są zdefiniowane.
Nie są możliwe żadne bezpośrednie przykłady, ponieważ destruktor jest chroniony.
Konstruktor inicjuje obiekt podstawowy za pomocą ustawień regionalnych::facet(refs
).
Zobacz też
<ustawienia regionalne>
time_base, klasa
Bezpieczeństwo wątku w standardowej bibliotece C++