Класс time_get
Шаблон класса описывает объект, который может служить аспектом языкового стандарта для управления преобразованиями последовательностей типов CharType
в значения времени.
Синтаксис
template <class CharType,
class InputIterator = istreambuf_iterator<CharType>>
class time_get : public time_base;
Параметры
CharType
Тип, используемый внутри программы для кодирования символов.
InputIterator
Итератор, из которого считываются значения времени.
Замечания
Как и в случае любого другого аспекта языкового стандарта, начальное сохраненное значение статического идентификатора объекта равно нулю. Первая попытка получить доступ к сохраненному значению сохранит уникальное положительное значение в id.
Конструкторы
Конструктор | Description |
---|---|
time_get | Конструктор для объектов типа time_get . |
Определения типов
Введите имя | Description |
---|---|
char_type | Тип, используемый для описания символа, используемого языковым стандартом. |
iter_type | Тип, который описывает итератор ввода. |
Функции элементов
Функция-член | Description |
---|---|
date_order | Возвращает порядок даты, используемый аспектом. |
do_date_order | Защищенная виртуальная функция-член, вызываемая для возврата порядка даты использовала аспектом. |
do_get | Считывает и преобразует символьные данные в значение времени. |
do_get_date | Защищенная виртуальная функция-член, вызываемая для того, чтобы выполнить синтаксический анализ строки в качестве даты, созданной спецификатором x для strftime . |
do_get_monthname | Защищенная виртуальная функция-член, вызываемая для того, чтобы выполнить синтаксический анализ строки в качестве названия месяца. |
do_get_time | Защищенная виртуальная функция-член, вызываемая для того, чтобы выполнить синтаксический анализ строки в качестве даты, созданной спецификатором X для strftime . |
do_get_weekday | Защищенная виртуальная функция-член, вызываемая для того, чтобы выполнить синтаксический анализ строки в качестве названия дня недели. |
do_get_year | Защищенная виртуальная функция-член, вызываемая для того, чтобы выполнить синтаксический анализ строки в качестве названия года. |
get | Считывает данные из источника символьных данных и преобразует их в значение времени, сохраняемое в структуре времени. |
get_date | Анализирует строку как дату, созданную спецификатором x для strftime . |
get_monthname | Анализирует строку как название месяца. |
get_time | Анализирует строку как дату, созданную спецификатором X для strftime . |
get_weekday | Анализирует строку как название дня недели. |
get_year | Анализирует строку как название года. |
Требования
Заголовок:<языковой стандарт>
Пространство имен: std
time_get::char_type
Тип, используемый для описания символа, используемого языковым стандартом.
typedef CharType char_type;
Замечания
Тип является синонимом для параметра-шаблона CharType.
time_get::d ate_order
Возвращает порядок даты, используемый аспектом.
dateorder date_order() const;
Возвращаемое значение
Порядок даты, используемый аспектом.
Замечания
Функция-член возвращает do_date_order.
Пример
// 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
Защищенная виртуальная функция-член, вызываемая для возврата порядка даты использовала аспектом.
virtual dateorder do_date_order() const;
Возвращаемое значение
Порядок даты, используемый аспектом.
Замечания
Виртуальная защищенная функция-член возвращает значение типа time_base::dateorder, которое описывает порядок сопоставления компонентов данных типом do_get_date. В этой реализации используется значение time_base::mdy, соответствующее датам в форме 2 декабря 1979.
Пример
См. тип date_order, вызывающий do_date_order
, в примере.
time_get::d o_get
Считывает и преобразует символьные данные в значение времени. Принимает один описатель преобразования и модификатор.
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;
Параметры
first
Входной итератор, который указывает на начало преобразуемой последовательности.
last
Входной итератор, который указывает на конец последовательности.
Iosbase
Объект потока.
state
Поле в iosbase, в котором заданы соответствующие элементы битовой маски, указывающее ошибки.
ptm
Указатель на структуру времени, где будет храниться время.
fmt
Символ описателя преобразования.
mod (модуль)
Необязательный символ модификатора.
Возвращаемое значение
Возвращает итератор, назначающий первый непреобразованный элемент. Сначала наборы ios_base::failbit
state
сбоев преобразования возвращаются и возвращаются.
Замечания
Функция виртуального члена преобразует и пропускает один или несколько входных элементов в диапазоне [first
, last
) для определения значений, хранящихся в одном или нескольких элементах *pt
. Сначала наборы ios_base::failbit
state
сбоев преобразования возвращаются и возвращаются. В противном случае функция возвращает итератор, назначающий первый непреобразованный элемент.
Описатели преобразования:
'a'
или 'A'
— ведет себя так же, как time_get::get_weekday.
'b'
, 'B'
или 'h'
— ведет себя так же, как time_get::get_monthname.
'c'
— аналогичен "%b %d %H : %M : %S %Y"
.
'C'
— преобразует десятичное поле ввода в диапазоне [0, 99] в значение val
и сохраняет val * 100 - 1900
в pt-&tm_year
.
'd'
или 'e'
— преобразует десятичное поле ввода в диапазоне [1, 31] и сохраняет его значение в pt-&tm_mday
.
'D'
— аналогичен "%m / %d / %y"
.
'H'
— преобразует десятичное поле ввода в диапазоне [0, 23] и сохраняет его значение в pt-&tm_hour
.
'I'
— преобразует десятичное поле ввода в диапазоне [0, 11] и сохраняет его значение в pt-&tm_hour
.
'j'
— преобразует десятичное поле ввода в диапазоне [1, 366] и сохраняет его значение в pt-&tm_yday
.
'm'
— преобразует десятичное поле ввода в диапазоне [1, 12] в значение val
и сохраняет val - 1
в pt-&tm_mon
.
'M'
— преобразует десятичное поле ввода в диапазоне [0, 59] и сохраняет его значение в pt-&tm_min
.
'n'
или 't'
— аналогичен " "
.
'p'
— преобразует AM или am в ноль, а PM или pm — в 12 и добавляет это значение к pt-&tm_hour
.
'r'
— аналогичен "%I : %M : %S %p"
.
'R'
— аналогичен "%H %M"
.
'S'
— преобразует десятичное поле ввода в диапазоне [0, 59] и сохраняет его значение в pt-&tm_sec
.
'T'
или 'X'
— аналогичен "%H : %M : S"
.
'U'
— преобразует десятичное поле ввода в диапазоне [0, 53] и сохраняет его значение в pt-&tm_yday
.
'w'
— преобразует десятичное поле ввода в диапазоне [0, 6] и сохраняет его значение в pt-&tm_wday
.
'W'
— преобразует десятичное поле ввода в диапазоне [0, 53] и сохраняет его значение в pt-&tm_yday
.
'x'
— аналогичен "%d / %m / %y"
.
'y'
— преобразует десятичное поле ввода в диапазоне [0, 99] в значение val
и сохраняет val < 69 val + 100 : val
в pt-&tm_year
.
'Y'
— ведет себя так же, как time_get::get_year.
Все другие описатели преобразования устанавливают ios_base::failbit
в state
и возвращают значение. В этой реализации любой модификатор не оказывает влияния.
time_get::d o_get_date
Защищенная виртуальная функция-член, вызываемая для того, чтобы выполнить синтаксический анализ строки в качестве даты, созданной спецификатором x для strftime
.
virtual iter_type do_get_date(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Параметры
first
Входной итератор, адресующий начало последовательности для преобразования.
last
Входной итератор, адресующий конец последовательности для преобразования.
Iosbase
Флаг формата, который, будучи установленным, указывает, что символ валюты не обязателен; в противном случае он обязателен.
state
Устанавливает нужные элементы битовой маски для состояния потока согласно тому, успешно ли выполнились операции.
ptm
Указатель на место, где будет храниться информация о дате.
Возвращаемое значение
Входной итератор, адресующий первый элемент после поля ввода.
Замечания
Виртуальная защищенная функция-член пытается сопоставить последовательные элементы, начиная с первого в последовательности [first
, last
), пока не распознает полное, непустое целочисленное поле ввода даты. При успешном выполнении это поле преобразуется в его эквивалентное значение в качестве компонентов tm::tm_mon, tm::tm_day и tm::tm_year и сохраняет результаты соответственноptm->tm_mon
ptm->tm_day
ptm->tm_year
. Она возвращает итератор, обозначающий первый элемент после поля ввода даты. В противном случае функция задает iosbase::failbit
состояние. Она возвращает итератор, обозначающий первый элемент после любого префикса допустимого поля ввода даты. В любом случае, если возвращаемое значение равно последнему, функция задает ios_base::eofbit
состояние.
Формат для поля ввода даты зависит от языкового стандарта. Для языкового стандарта по умолчанию поле ввода даты имеет вид МММ ДД, ГГГГ, где:
MMM сопоставляется вызовом метода get_monthname, это месяц.
ДД — это последовательность десятичных цифр, соответствующее числовое значение которой должно находиться в диапазоне [1, 31], это день месяца.
ГГГГ сопоставляется вызовом метода get_year, это год.
Литеральные пробелы и запятые должны соответствовать соответствующим элементам во входной последовательности.
Пример
См. пример для get_date, который вызывает do_get_date
.
time_get::d o_get_monthname
Защищенная виртуальная функция-член, вызываемая для того, чтобы выполнить синтаксический анализ строки в качестве названия месяца.
virtual iter_type do_get_monthname(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Параметры
first
Входной итератор, адресующий начало последовательности для преобразования.
last
Входной итератор, адресующий конец последовательности для преобразования.
Iosbase
Не используется.
state
Выходной параметр, задающий нужные элементы битовой маски для состояния потока согласно тому, успешно ли выполнились операции.
ptm
Указатель на место, где будет храниться информация о месяце.
Возвращаемое значение
Входной итератор, адресующий первый элемент после поля ввода.
Замечания
Виртуальная защищенная функция-член пытается сопоставить последовательные элементы, начиная с первого в последовательности [first
, last
), пока не распознает полное, непустое целочисленное поле ввода месяца. В случае успешного выполнения он преобразует это поле в ptm->tm_mon
его эквивалентное значение в качестве компонента tm::tm_mon и сохраняет результат. Она возвращает итератор, обозначающий первый элемент после поля ввода месяца. В противном случае функция задает ios_base::failbit
состояние. Она возвращает итератор, обозначающий первый элемент после любого префикса допустимого поля ввода месяца. В любом случае, если возвращаемое значение равно последнему, функция задает ios_base::eofbit
состояние.
Поле ввода месяца это последовательность, соответствующая самому длинному множеству последовательностей с учетом языковых стандартов, таких как "янв.", "январь", "фев.", "февраль" и т. д. Преобразованное значение — количество месяцев с января.
Пример
См. пример для get_monthname, который вызывает do_get_monthname
.
time_get::d o_get_time
Защищенная виртуальная функция-член, вызываемая для того, чтобы выполнить синтаксический анализ строки в качестве даты, созданной спецификатором x для strftime
.
virtual iter_type do_get_time(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Параметры
first
Входной итератор, адресующий начало последовательности для преобразования.
last
Входной итератор, адресующий конец последовательности для преобразования.
Iosbase
Не используется.
state
Устанавливает нужные элементы битовой маски для состояния потока согласно тому, успешно ли выполнились операции.
ptm
Указатель на место, где будет храниться информация о дате.
Возвращаемое значение
Входной итератор, адресующий первый элемент после поля ввода.
Замечания
Виртуальная защищенная функция-член пытается сопоставить последовательные элементы, начиная с первого в последовательности [first
, last
), пока не распознает полное, непустое целочисленное поле ввода времени. Если это поле успешно выполнено, оно преобразует это поле в эквивалентное значение в качестве компонентов tm::tm_hour
и tm::tm_sec
tm::tm_min
сохраняет результаты соответственноptm->tm_hour
ptm->tm_min
ptm->tm_sec
. Она возвращает итератор, обозначающий первый элемент после поля ввода даты. В противном случае функция задает ios_base::failbit
состояние. Она возвращает итератор, обозначающий первый элемент после любого префикса допустимого поля ввода времени. В любом случае, если возвращаемое значение равно последнему, функция задает ios_base::eofbit
состояние.
В этой реализации поле ввода времени имеет вид ЧЧ:ММ:СС, где:
ЧЧ — это последовательность десятичных цифр, соответствующее числовое значение которой должно находиться в диапазоне [0, 24), это час дня;
ММ — это последовательность десятичных цифр, соответствующее числовое значение которой должно находиться в диапазоне [0, 60), это минуты часа;
СС — это последовательность десятичных цифр, соответствующее числовое значение которой должно находиться в диапазоне [0, 60), это секунды минуты.
Литеральные двоеточия должны соответствовать соответствующим элементам во входной последовательности.
Пример
См. пример для get_time, который вызывает do_get_time
.
time_get::d o_get_weekday
Защищенная виртуальная функция-член, вызываемая для того, чтобы выполнить синтаксический анализ строки в качестве названия дня недели.
virtual iter_type do_get_weekday(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Параметры
first
Входной итератор, адресующий начало последовательности для преобразования.
last
Входной итератор, адресующий конец последовательности для преобразования.
Iosbase
Флаг формата, который, будучи установленным, указывает, что символ валюты не обязателен; в противном случае он обязателен.
state
Устанавливает нужные элементы битовой маски для состояния потока согласно тому, успешно ли выполнились операции.
ptm
Указатель на место, где будет храниться информация о дне недели.
Возвращаемое значение
Входной итератор, адресующий первый элемент после поля ввода.
Замечания
Виртуальная защищенная функция-член пытается сопоставить последовательные элементы, начинающиеся сначала в последовательности [ first
, ) last
до тех пор, пока она не распознает полное, неmpty weekday input field. В случае успешного выполнения это поле преобразуется в его эквивалентное значение в качестве компонента tm::tm_wday и сохраняет результат.ptm->tm_wday
Она возвращает итератор, обозначающий первый элемент после поля ввода дня недели. В противном случае функция задает ios_base::failbit
состояние. Она возвращает итератор, обозначающий первый элемент после любого префикса допустимого поля ввода дня недели. В любом случае, если возвращаемое значение равно последнему, функция задает ios_base::eofbit
состояние.
Поле ввода дня недели — это последовательность, соответствующая самому длинному множеству последовательностей с учетом языковых стандартов, таких как "пнд", "понедельник", "втр", "вторник" и т. д. Преобразованное значение — количество дней с понедельника.
Пример
См. пример для get_weekday, который вызывает do_get_weekday
.
time_get::d o_get_year
Защищенная виртуальная функция-член, вызываемая для того, чтобы выполнить синтаксический анализ строки в качестве названия года.
virtual iter_type do_get_year(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Параметры
first
Входной итератор, адресующий начало последовательности для преобразования.
last
Входной итератор, адресующий конец последовательности для преобразования.
Iosbase
Флаг формата, который, будучи установленным, указывает, что символ валюты не обязателен; в противном случае он обязателен.
state
Устанавливает нужные элементы битовой маски для состояния потока согласно тому, успешно ли выполнились операции.
ptm
Указатель на место, где будет храниться информация о годе.
Возвращаемое значение
Входной итератор, адресующий первый элемент после поля ввода.
Замечания
Виртуальная защищенная функция-член пытается сопоставить последовательные элементы, начинающиеся сначала в последовательности [ first
, ) last
до тех пор, пока он не распознает полное, непустомное поле ввода года. При успешном выполнении это поле преобразуется в ptm->tm_year
его эквивалентное значение в качестве компонента tm::tm_year и сохраняет результат. Она возвращает итератор, обозначающий первый элемент после поля ввода года. В противном случае функция задает ios_base::failbit
состояние. Она возвращает итератор, обозначающий первый элемент после любого префикса допустимого поля ввода года. В любом случае, если возвращаемое значение равно последнему, функция задает ios_base::eofbit
состояние.
Поле ввода года — это последовательность десятичных цифр, соответствующее числовое значение которой должно находиться в диапазоне [1900, 2036). Сохраненное значение — это значение минус 1900. В этой реализации значения в диапазоне [69, 136) представляют диапазон лет [1969, 2036). Значения в диапазоне [0, 69) также допустимы, но они могут представлять либо диапазон лет [1900, 1969), либо [2000, 2069) в зависимости от конкретной среды перевода.
Пример
См. пример для get_year, который вызывает do_get_year
.
time_get::get
Считывает данные из источника символьных данных и преобразует их в значение времени, сохраняемое в структуре времени. Первая функция принимает один описатель и модификатор преобразования, а вторая — несколько.
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;
Параметры
first
Входной итератор, который указывает начало преобразуемой последовательности.
last
Входной итератор, который указывает конец преобразуемой последовательности.
Iosbase
Поток.
state
Для состояния потока задаются соответствующие элементы битовой маски для указания ошибок.
ptm
Указатель на структуру времени, где будет храниться время.
fmt
Символ описателя преобразования.
mod (модуль)
Необязательный символ модификатора.
fmt_first
Указывает на начало директив формата.
fmt_last
Указывает на конец директив формата.
Возвращаемое значение
Возвращает итератор первому символу после данных, которые использовались для назначения структуры *ptm
времени.
Замечания
Первая функция-член возвращает значение do_get(first, last, iosbase, state, ptm, fmt, mod)
.
Вторая функция-член вызывает do_get
в формате с разделением [fmt_first, fmt_last)
. Она воспринимает формат как последовательность полей, каждое из которых определяет преобразование нуля или большего числа входных элементов, разделенных [first, last)
. Возвращает итератор, назначающий первый непреобразованный элемент. Существует три типа полей.
Процент (%) в формате, за которым следует дополнительный модификатор в наборе [EOQ#], за которым следует описатель преобразования fmt, заменяет сначала значение, возвращаемое do_get(first, last, iosbase, state, ptm, fmt, mod)
. Сбой преобразования задает ios_base::failbit
состояние и возвращается.
Элемент пробела в формате пропускает ноль или более последних входных элементов пробелов.
Любой другой элемент в формате должен соответствовать следующему входному элементу, который пропускается. Сбой сопоставления устанавливается ios_base::failbit
в состоянии и возвращается.
time_get::get_date
Анализирует строку как дату, созданную спецификатором x для strftime
.
iter_type get_date(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Параметры
first
Входной итератор, адресующий начало последовательности для преобразования.
last
Входной итератор, адресующий конец последовательности для преобразования.
Iosbase
Флаг формата, который, будучи установленным, указывает, что символ валюты не обязателен; в противном случае он обязателен.
state
Устанавливает нужные элементы битовой маски для состояния потока согласно тому, успешно ли выполнились операции.
ptm
Указатель на место, где будет храниться информация о дате.
Возвращаемое значение
Входной итератор, адресующий первый элемент после поля ввода.
Замечания
Функция-член возвращает do_get_date(first
, , last
, iosbase
state
, ptm
).
Обратите внимание, что месяцы отсчитываются от 0 до 11.
Пример
// 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
Анализирует строку как название месяца.
iter_type get_monthname(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Параметры
first
Входной итератор, адресующий начало последовательности для преобразования.
last
Входной итератор, адресующий конец последовательности для преобразования.
Iosbase
Не используется.
state
Выходной параметр, задающий нужные элементы битовой маски для состояния потока согласно тому, успешно ли выполнились операции.
ptm
Указатель на место, где будет храниться информация о месяце.
Возвращаемое значение
Входной итератор, адресующий первый элемент после поля ввода.
Замечания
Функция-член возвращает do_get_monthname(first
, , last
, iosbase
state
, ptm
).
Пример
// 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
Анализирует строку как дату, созданную спецификатором x для strftime
.
iter_type get_time(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Параметры
first
Входной итератор, адресующий начало последовательности для преобразования.
last
Входной итератор, адресующий конец последовательности для преобразования.
Iosbase
Не используется.
state
Устанавливает нужные элементы битовой маски для состояния потока согласно тому, успешно ли выполнились операции.
ptm
Указатель на место, где будет храниться информация о дате.
Возвращаемое значение
Входной итератор, адресующий первый элемент после поля ввода.
Замечания
Функция-член возвращает do_get_time(first
, , last
, iosbase
state
, ptm
).
Пример
// 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
Анализирует строку как название дня недели.
iter_type get_weekday(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Параметры
first
Входной итератор, адресующий начало последовательности для преобразования.
last
Входной итератор, адресующий конец последовательности для преобразования.
Iosbase
Флаг формата, который, будучи установленным, указывает, что символ валюты не обязателен; в противном случае он обязателен.
state
Устанавливает нужные элементы битовой маски для состояния потока согласно тому, успешно ли выполнились операции.
ptm
Указатель на место, где будет храниться информация о дне недели.
Возвращаемое значение
Входной итератор, адресующий первый элемент после поля ввода.
Замечания
Функция-член возвращает do_get_weekday(first
, , last
, iosbase
state
, ptm
).
Пример
// 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
Анализирует строку как название года.
iter_type get_year(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Параметры
first
Входной итератор, адресующий начало последовательности для преобразования.
last
Входной итератор, адресующий конец последовательности для преобразования.
Iosbase
Флаг формата, который, будучи установленным, указывает, что символ валюты не обязателен; в противном случае он обязателен.
state
Устанавливает нужные элементы битовой маски для состояния потока согласно тому, успешно ли выполнились операции.
ptm
Указатель на место, где будет храниться информация о годе.
Возвращаемое значение
Входной итератор, адресующий первый элемент после поля ввода.
Замечания
Функция-член возвращает do_get_year(first
, , last
, iosbase
state
, ptm
).
Пример
// 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
Тип, который описывает итератор ввода.
typedef InputIterator iter_type;
Замечания
Этот тип является синонимом для параметра-шаблона InputIterator.
time_get::time_get
Конструктор для объектов типа time_get
.
explicit time_get(size_t refs = 0);
Параметры
Ссылочные ссылки
Целочисленное значение, используемое для указания типа управления памятью для объекта.
Замечания
Возможные значения параметра ссылок и их значение:
0: время существования объекта управляется языковыми стандартами, которые его содержат.
1: время существования объекта должно управляться вручную.
> 1. Эти значения не определены.
Прямые примеры привести нельзя, так как деструктор защищен.
Конструктор инициализирует базовый объект с помощью языкового стандарта::facet(refs
).
См. также
<локаль>
Класс time_base
Потокобезопасность в стандартной библиотеке C++