Поделиться через


Класс 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_monptm->tm_dayptm->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_sectm::tm_minсохраняет результаты соответственноptm->tm_hourptm->tm_minptm->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, iosbasestate, 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, iosbasestate, 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, iosbasestate, 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, iosbasestate, 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, iosbasestate, 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++