Compartilhar via


Classe time_get

O modelo de classe descreve um objeto que pode servir como uma faceta de localidade para controlar conversões de sequências do tipo CharType em valores de tempo.

Sintaxe

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

Parâmetros

CharType
O tipo usado em um programa para codificar caracteres.

InputIterator
O iterador do qual os valores de tempo são lidos.

Comentários

Como qualquer faceta de localidade, a ID de objeto estático tem um valor armazenado inicial de zero. A primeira tentativa de acessar seu valor armazenado armazena um valor positivo exclusivo na id.

Construtores

Construtor Descrição
time_get O construtor para objetos do tipo time_get.

Typedefs

Nome do tipo Descrição
char_type Um tipo que é usado para descrever um caractere usado por uma localidade.
iter_type Um tipo que descreve um iterador de entrada.

Funções de membro

Função de membro Descrição
date_order Retorna a ordem de data usada por uma faceta.
do_date_order Uma função membro virtual protegida que é chamada para retornar a ordem de data usada por uma faceta.
do_get Lê e converte dados de caractere em um valor de tempo.
do_get_date Uma função membro virtual protegida que é chamada para analisar uma cadeia de caracteres como a data gerada pelo especificador x para strftime.
do_get_monthname Uma função membro virtual protegida que é chamada para analisar uma cadeia de caracteres como o nome do mês.
do_get_time Uma função membro virtual protegida que é chamada para analisar uma cadeia de caracteres como a data gerada pelo especificador X para strftime.
do_get_weekday Uma função membro virtual protegida que é chamada para analisar uma cadeia de caracteres como o nome do dia da semana.
do_get_year Uma função membro virtual protegida que é chamada para analisar uma cadeia de caracteres como o nome do ano.
get Lê de uma origem de dados de caracteres e converte esses dados em uma hora que é armazenada em um struct de tempo.
get_date Analise uma cadeia de caracteres como a data gerada pelo especificador x para strftime.
get_monthname Analisa uma cadeia de caracteres como o nome do mês.
get_time Analise uma cadeia de caracteres como a data gerada pelo especificador X para strftime.
get_weekday Analisa uma cadeia de caracteres como o nome do dia da semana.
get_year Analisa uma cadeia de caracteres como o nome do ano.

Requisitos

Cabeçalho:<locale>

Namespace: std

time_get::char_type

Um tipo que é usado para descrever um caractere usado por uma localidade.

typedef CharType char_type;

Comentários

O tipo é um sinônimo do parâmetro de modelo CharType.

time_get::d ate_order

Retorna a ordem de data usada por uma faceta.

dateorder date_order() const;

Valor de retorno

A ordem de data usada por uma faceta.

Comentários

A função membro retorna do_date_order.

Exemplo

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

Uma função membro virtual protegida que é chamada para retornar a ordem de data usada por uma faceta.

virtual dateorder do_date_order() const;

Valor de retorno

A ordem de data usada por uma faceta.

Comentários

A função membro virtual protegida retorna um valor do tipo time_base::dateorder, que descreve a ordem na qual os componentes de data são correspondidos por do_get_date. Nessa implementação, o valor é time_base::mdy, correspondente às datas do formato 2 de dezembro de 1979.

Exemplo

Consulte o exemplo de date_order, que chama do_date_order.

time_get::d o_get

Lê e converte dados de caractere em um valor de tempo. Aceita um especificador e modificador de conversão.

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;

Parâmetros

first
Um iterador de Entrada que indica o início da sequência a ser convertido.

last
Um iterador de Entrada que indica o final da sequência.

iosbase
Um objeto de fluxo.

state
Um campo em iosbase no qual os elementos de bitmask apropriados são definidos para indicar erros.

ptm
Um ponteiro para a estrutura de tempo na qual o tempo deve ser armazenado.

fmt
Um caractere especificador de conversão.

mod
Um caractere modificador opcional.

Valor de retorno

Retorna um iterador que designa o primeiro elemento não convertido. Uma falha de conversão define ios_base::failbit em state e retorna first.

Comentários

A função membro virtual converte e ignora um ou mais elementos de entrada no intervalo (first, last) para determinar os valores armazenados em um ou mais membros de *pt. Uma falha de conversão define ios_base::failbit em state e retorna first. Caso contrário, a função retornará um iterador que designa o primeiro elemento não convertido.

Os especificadores de conversão são:

'a' ou 'A' – tem o mesmo comportamento que time_get::get_weekday.

'b', 'B' ou 'h' – tem o mesmo comportamento que time_get::get_monthname.

'c' – tem o mesmo comportamento que "%b %d %H : %M : %S %Y".

'C' – converte um campo de entrada decimal no intervalo [0, 99] no valor val e armazena val * 100 - 1900 em pt-&tm_year.

'd' ou 'e' – converte um campo de entrada decimal no intervalo [1, 31] e armazena o valor em pt-&tm_mday.

'D' – tem o mesmo comportamento que "%m / %d / %y".

'H' – converte um campo de entrada decimal no intervalo [0, 23] e armazena o valor em pt-&tm_hour.

'I' – converte um campo de entrada decimal no intervalo [0, 11] e armazena o valor em pt-&tm_hour.

'j' – converte um campo de entrada decimal no intervalo [1, 366] e armazena o valor em pt-&tm_yday.

'm' – converte um campo de entrada decimal no intervalo [1, 12] no valor val e armazena val - 1 em e armazena o valor em pt-&tm_mon.

'M' – converte um campo de entrada decimal no intervalo [0, 59] e armazena o valor em pt-&tm_min.

'n' ou 't' – tem o mesmo comportamento que " ".

'p' – converte “AM” ou “am” em zero e “PM” ou “PM” em 12 e adiciona esse valor a pt-&tm_hour.

'r' – tem o mesmo comportamento que "%I : %M : %S %p".

'R' – tem o mesmo comportamento que "%H %M".

'S' – converte um campo de entrada decimal no intervalo [0, 59] e armazena o valor em pt-&tm_sec.

'T' ou 'X' – tem o mesmo comportamento que "%H : %M : S".

'U' – converte um campo de entrada decimal no intervalo [0, 53] e armazena o valor em pt-&tm_yday.

'w' – converte um campo de entrada decimal no intervalo [0, 6] e armazena o valor em pt-&tm_wday.

'W' – converte um campo de entrada decimal no intervalo [0, 53] e armazena o valor em pt-&tm_yday.

'x' – tem o mesmo comportamento que "%d / %m / %y".

'y' – converte um campo de entrada decimal no intervalo [0, 99] no valor val e armazena val < 69 val + 100 : val em pt-&tm_year.

'Y' – tem o mesmo comportamento que time_get::get_year.

Todos os outros especificadores de conversão definem ios_base::failbit em state e retornam. Nessa implementação, qualquer modificador não tem nenhum efeito.

time_get::d o_get_date

Uma função membro virtual protegida que é chamada para analisar uma cadeia de caracteres como a data produzida pelo especificador x de strftime.

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

Parâmetros

first
Iterador de entrada que trata o início da sequência a ser convertido.

last
Iterador de entrada que trata o fim da sequência a ser convertido.

iosbase
Um sinalizador de formato que quando definido indica que o símbolo de moeda é opcional; caso contrário, será obrigatório.

state
Define os elementos de bitmask apropriados para o estado de fluxo, dependendo se as operações foram bem-sucedidas.

ptm
Um ponteiro para o local em que as informações de data devem ser armazenadas.

Valor de retorno

Um iterador de entrada que trata o primeiro elemento após o campo de entrada.

Comentários

A função membro virtual protegida tenta corresponder elementos sequenciais, começando pelo primeiro na sequência [first, last] até ter reconhecido um campo de entrada de data completo e não vazio. Se tiver êxito, ela converterá esse campo em seu valor equivalente como os componentes tm::tm_mon, tm::tm_day e tm::tm_year e armazenará os resultados em ptm->tm_mon, ptm->tm_day e ptm->tm_year, respectivamente. Ela retorna um iterador que designa o primeiro elemento após o campo de entrada de data. Caso contrário, a função definirá iosbase::failbit em state. Ela retorna um iterador que designa o primeiro elemento após qualquer prefixo de um campo de entrada de data válido. Em ambos os casos, se o valor retornado for igual a last, a função define ios_base::eofbit em state.

O formato do campo de entrada de data é dependente da localidade. Para a localidade padrão, o campo de entrada de data tem o formato MMM DD, YYYY, em que:

  • MMM é correspondido pela chamada a get_monthname, considerando o mês.

  • DD é uma sequência de dígitos decimais cujo valor numérico correspondente deve estar no intervalo [1, 31], considerando o dia do mês.

  • YYYY é correspondido pela chamada a get_year, considerando o ano.

Os espaços e as vírgulas do literal devem corresponder a elementos correspondentes na sequência de entrada.

Exemplo

Consulte o exemplo de get_date, que chama do_get_date.

time_get::d o_get_monthname

Uma função membro virtual protegida que é chamada para analisar uma cadeia de caracteres como o nome do mês.

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

Parâmetros

first
Iterador de entrada que trata o início da sequência a ser convertido.

last
Iterador de entrada que trata o fim da sequência a ser convertido.

iosbase
Não utilizado.

state
Um parâmetro de saída que define os elementos de bitmask apropriados para o estado de fluxo, dependendo se as operações foram bem-sucedidas.

ptm
Um ponteiro para o local em que as informações de mês devem ser armazenadas.

Valor de retorno

Um iterador de entrada que trata o primeiro elemento após o campo de entrada.

Comentários

A função membro virtual protegida tenta corresponder elementos sequenciais, começando pelo primeiro na sequência [first, last] até ter reconhecido um campo de entrada de mês completo e não vazio. Se tiver êxito, ela converterá esse campo em seu valor equivalente como o componente tm::tm_mon e armazenará o resultado em ptm->tm_mon. Ela retorna um iterador que designa o primeiro elemento após o campo de entrada de mês. Caso contrário, a função definirá ios_base::failbit em state. Ela retorna um iterador que designa o primeiro elemento após qualquer prefixo de um campo de entrada de mês válido. Em ambos os casos, se o valor retornado for igual a last, a função define ios_base::eofbit em state.

O campo de entrada de mês é uma sequência que corresponde à sequência mais longa de um conjunto de sequências específicas à localidade, como jan, janeiro, fev, fevereiro e assim por diante. O valor convertido é o número de meses desde janeiro.

Exemplo

Consulte o exemplo de get_monthname, que chama do_get_monthname.

time_get::d o_get_time

Uma função membro virtual protegida que é chamada para analisar uma cadeia de caracteres como a data produzida pelo especificador X de strftime.

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

Parâmetros

first
Iterador de entrada que trata o início da sequência a ser convertido.

last
Iterador de entrada que trata o fim da sequência a ser convertido.

iosbase
Não utilizado.

state
Define os elementos de bitmask apropriados para o estado de fluxo, dependendo se as operações foram bem-sucedidas.

ptm
Um ponteiro para o local em que as informações de data devem ser armazenadas.

Valor de retorno

Um iterador de entrada que trata o primeiro elemento após o campo de entrada.

Comentários

A função membro virtual protegida tenta corresponder elementos sequenciais, começando pelo primeiro na sequência [first, last] até ter reconhecido um campo de entrada de hora completo e não vazio. Se tiver êxito, ela converterá esse campo em seu valor equivalente como os componentes tm::tm_hour, tm::tm_min e tm::tm_sec e armazenará os resultados em ptm->tm_hour, ptm->tm_min e ptm->tm_sec, respectivamente. Ela retorna um iterador que designa o primeiro elemento após o campo de entrada de hora. Caso contrário, a função definirá ios_base::failbit em state. Ela retorna um iterador que designa o primeiro elemento após qualquer prefixo de um campo de entrada de hora válido. Em ambos os casos, se o valor retornado for igual a last, a função define ios_base::eofbit em state.

Nessa implementação, o campo de entrada de hora tem o formato HH:MM:SS, em que:

  • HH é uma sequência de dígitos decimais cujo valor numérico correspondente deve estar no intervalo [0, 24], considerando a hora do dia.

  • MM é uma sequência de dígitos decimais cujo valor numérico correspondente deve estar no intervalo [0, 60], fornecendo os minutos após a hora.

  • SS é uma sequência de dígitos decimais cujo valor numérico correspondente deve estar no intervalo [0, 60], fornecendo os segundos após o minuto.

Os dois-pontos do literal devem corresponder a elementos correspondentes na sequência de entrada.

Exemplo

Consulte o exemplo de get_time, que chama do_get_time.

time_get::d o_get_weekday

Uma função membro virtual protegida que é chamada para analisar uma cadeia de caracteres como o nome do dia da semana.

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

Parâmetros

first
Iterador de entrada que trata o início da sequência a ser convertido.

last
Iterador de entrada que trata o fim da sequência a ser convertido.

iosbase
Um sinalizador de formato que quando definido indica que o símbolo de moeda é opcional; caso contrário, será obrigatório.

state
Define os elementos de bitmask apropriados para o estado de fluxo, dependendo se as operações foram bem-sucedidas.

ptm
Um ponteiro para o local em que as informações de dia da semana devem ser armazenadas.

Valor de retorno

Um iterador de entrada que trata o primeiro elemento após o campo de entrada.

Comentários

A função membro virtual protegida tenta corresponder elementos sequenciais, começando em first na sequência (firstlast) até ter reconhecido um campo de entrada de dia da semana completo e não vazio. Se tiver êxito, ela converterá esse campo em seu valor equivalente como o componente tm::tm_wday e armazenará o resultado em ptm->tm_wday. Ela retorna um iterador que designa o primeiro elemento após o campo de entrada de dia da semana. Caso contrário, a função definirá ios_base::failbit em state. Ela retorna um iterador que designa o primeiro elemento após qualquer prefixo de um campo de entrada de dia da semana válido. Em ambos os casos, se o valor retornado for igual a last, a função define ios_base::eofbit em state.

O campo de entrada de dia da semana é uma sequência que corresponde à sequência mais longa de um conjunto de sequências específicas à localidade, como dom, domingo, seg, segunda-feira e assim por diante. O valor convertido é o número de dias desde domingo.

Exemplo

Consulte o exemplo de get_weekday, que chama do_get_weekday.

time_get::d o_get_year

Uma função membro virtual protegida que é chamada para analisar uma cadeia de caracteres como o nome do ano.

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

Parâmetros

first
Iterador de entrada que trata o início da sequência a ser convertido.

last
Iterador de entrada que trata o fim da sequência a ser convertido.

iosbase
Um sinalizador de formato que quando definido indica que o símbolo de moeda é opcional; caso contrário, será obrigatório.

state
Define os elementos de bitmask apropriados para o estado de fluxo, dependendo se as operações foram bem-sucedidas.

ptm
Um ponteiro para o local em que as informações de ano devem ser armazenadas.

Valor de retorno

Um iterador de entrada que trata o primeiro elemento após o campo de entrada.

Comentários

A função membro virtual protegida tenta corresponder elementos sequenciais, começando em first na sequência ( first, last) até ter reconhecido um campo de entrada de ano completo e não vazio. Se tiver êxito, ela converterá esse campo em seu valor equivalente como o componente tm::tm_year e armazenará o resultado em ptm->tm_year. Ela retorna um iterador que designa o primeiro elemento após o campo de entrada de ano. Caso contrário, a função definirá ios_base::failbit em state. Ela retorna um iterador que designa o primeiro elemento após qualquer prefixo de um campo de entrada de ano válido. Em ambos os casos, se o valor retornado for igual a last, a função define ios_base::eofbit em state.

O campo de entrada de ano é uma sequência de dígitos decimais cujo valor numérico correspondente deve estar no intervalo [1900, 2036]. O valor armazenado é esse valor menos 1900. Nessa implementação, os valores no intervalo [69, 136] representam o intervalo de anos [1969, 2036]. Valores no intervalo [0, 69] também são permitidos, mas podem representar o intervalo de anos [1900, 1969] ou [2000, 2069], dependendo do ambiente de translação específico.

Exemplo

Consulte o exemplo de get_year, que chama do_get_year.

time_get::get

Lê de uma origem de dados de caracteres e converte esses dados em uma hora que é armazenada em um struct de tempo. A primeira função aceita um especificador e modificador de conversão, enquanto a segunda aceita vários.

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;

Parâmetros

first
Iterador de entrada que indica o início da sequência a ser convertido.

last
Iterador de entrada que indica o final da sequência a ser convertido.

iosbase
O fluxo.

state
Os elementos de bitmask apropriados são definidos para o estado de fluxo para indicar erros.

ptm
Ponteiro para a estrutura de tempo na qual o tempo deve ser armazenado.

fmt
Um caractere especificador de conversão.

mod
Um caractere modificador opcional.

fmt_first
Aponta para o início das diretivas de formato.

fmt_last
Aponta para o final das diretivas de formato.

Valor de retorno

Retorna um iterador para o primeiro caractere após os dados que foram usados para atribuir o struct de tempo *ptm.

Comentários

A primeira função membro retorna do_get(first, last, iosbase, state, ptm, fmt, mod).

A segunda função membro chama do_get sob o controle do formato delimitado por [fmt_first, fmt_last). Ela trata o formato como uma sequência de campos, em que cada uma delas determina a conversão de zero ou mais elementos de entrada delimitados por [first, last). Ela retorna um iterador que designa o primeiro elemento não convertido. Há três tipos de campos:

Um percentual (%) no formato, seguido por um modificador mod opcional no [EOQ#] definido, seguido por um especificador de conversãofmt, substitui first pelo valor retornado por do_get(first, last, iosbase, state, ptm, fmt, mod). Uma falha de conversão define ios_base::failbit em state e retorna.

Um elemento de espaço em branco no formato ignora após zero ou mais elementos de espaço em branco de entrada.

Qualquer outro elemento no formato deve corresponder ao próximo elemento de entrada, que é ignorado. Uma falha de correspondência define ios_base::failbit em state e retorna.

time_get::get_date

Analisa uma cadeia de caracteres como a data produzida pelo especificador x para strftime.

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

Parâmetros

first
Iterador de entrada que trata o início da sequência a ser convertido.

last
Iterador de entrada que trata o fim da sequência a ser convertido.

iosbase
Um sinalizador de formato que quando definido indica que o símbolo de moeda é opcional; caso contrário, será obrigatório.

state
Define os elementos de bitmask apropriados para o estado de fluxo, dependendo se as operações foram bem-sucedidas.

ptm
Um ponteiro para o local em que as informações de data devem ser armazenadas.

Valor de retorno

Um iterador de entrada que trata o primeiro elemento após o campo de entrada.

Comentários

A função membro retorna do_get_date( first, last, iosbase, state, ptm).

Observe que os meses são contados de 0 a 11.

Exemplo

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

Analisa uma cadeia de caracteres como o nome do mês.

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

Parâmetros

first
Iterador de entrada que trata o início da sequência a ser convertido.

last
Iterador de entrada que trata o fim da sequência a ser convertido.

iosbase
Não utilizado.

state
Um parâmetro de saída que define os elementos de bitmask apropriados para o estado de fluxo, dependendo se as operações foram bem-sucedidas.

ptm
Um ponteiro para o local em que as informações de mês devem ser armazenadas.

Valor de retorno

Um iterador de entrada que trata o primeiro elemento após o campo de entrada.

Comentários

A função membro retorna do_get_monthname( first, last, iosbase, state, ptm).

Exemplo

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

Analisa uma cadeia de caracteres como a data produzida pelo especificador X para strftime.

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

Parâmetros

first
Iterador de entrada que trata o início da sequência a ser convertido.

last
Iterador de entrada que trata o fim da sequência a ser convertido.

iosbase
Não utilizado.

state
Define os elementos de bitmask apropriados para o estado de fluxo, dependendo se as operações foram bem-sucedidas.

ptm
Um ponteiro para o local em que as informações de data devem ser armazenadas.

Valor de retorno

Um iterador de entrada que trata o primeiro elemento após o campo de entrada.

Comentários

A função membro retorna do_get_time(first, last, iosbase, state, ptm).

Exemplo

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

Analisa uma cadeia de caracteres como o nome do dia da semana.

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

Parâmetros

first
Iterador de entrada que trata o início da sequência a ser convertido.

last
Iterador de entrada que trata o fim da sequência a ser convertido.

iosbase
Um sinalizador de formato que quando definido indica que o símbolo de moeda é opcional; caso contrário, será obrigatório.

state
Define os elementos de bitmask apropriados para o estado de fluxo, dependendo se as operações foram bem-sucedidas.

ptm
Um ponteiro para o local em que as informações de dia da semana devem ser armazenadas.

Valor de retorno

Um iterador de entrada que trata o primeiro elemento após o campo de entrada.

Comentários

A função membro retorna do_get_weekday(first, last, iosbase, state, ptm).

Exemplo

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

Analisa uma cadeia de caracteres como o nome do ano.

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

Parâmetros

first
Iterador de entrada que trata o início da sequência a ser convertido.

last
Iterador de entrada que trata o fim da sequência a ser convertido.

iosbase
Um sinalizador de formato que quando definido indica que o símbolo de moeda é opcional; caso contrário, será obrigatório.

state
Define os elementos de bitmask apropriados para o estado de fluxo, dependendo se as operações foram bem-sucedidas.

ptm
Um ponteiro para o local em que as informações de ano devem ser armazenadas.

Valor de retorno

Um iterador de entrada que trata o primeiro elemento após o campo de entrada.

Comentários

A função membro retorna do_get_year(first, last, iosbase, state, ptm).

Exemplo

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

Um tipo que descreve um iterador de entrada.

typedef InputIterator iter_type;

Comentários

O tipo é um sinônimo do parâmetro de modelo InputIterator.

time_get::time_get

O construtor para objetos do tipo time_get.

explicit time_get(size_t refs = 0);

Parâmetros

refs
Valor inteiro usado para especificar o tipo de gerenciamento de memória do objeto.

Comentários

Os valores possíveis para o parâmetro refs e o significado são:

  • 0: o tempo de vida do objeto é gerenciado pelas localidades que o contêm.

  • 1: o tempo de vida do objeto deve ser gerenciado manualmente.

  • > 1: esses valores não estão definidos.

Nenhum exemplo direto é possível, pois o destruidor está protegido.

O construtor inicializa seu objeto base com locale::facet( refs).

Confira também

<locale>
Classe time_base
Acesso Thread-Safe na Biblioteca Padrão C++