Condividi tramite


Classe time_get

Il modello di classe descrive un oggetto che può fungere da facet delle impostazioni locali per controllare le conversioni di sequenze di tipo CharType in valori temporali.

Sintassi

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

Parametri

CharType
Tipo utilizzato all'interno di un programma per codificare i caratteri.

InputIterator
Iteratore da cui vengono letti i valori temporali.

Osservazioni:

Come in qualsiasi facet delle impostazioni locali, l'ID dell'oggetto statico ha un valore archiviato iniziale uguale a zero. Il primo tentativo di accedere a tale valore archiviato consente di archiviare un valore positivo univoco in id.

Costruttori

Costruttore Descrizione
time_get Costruttore per oggetti di tipo time_get.

Typedef

Nome tipo Descrizione
char_type Tipo utilizzato per descrivere un carattere utilizzato dalle impostazioni locali.
iter_type Tipo che descrive un iteratore di input.

Funzioni membro

Funzione membro Descrizione
date_order Restituisce l'ordine della data utilizzato da un facet.
do_date_order Funzione membro virtuale protetta chiamata per restituire l'ordine della data utilizzato da un facet.
do_get Legge e converte i dati di tipo carattere in un valore di ora.
do_get_date Funzione membro virtuale protetta chiamata per analizzare una stringa come la data generata dall'identificatore x per strftime.
do_get_monthname Funzione membro virtuale protetta chiamata per analizzare una stringa come il nome del mese.
do_get_time Funzione membro virtuale protetta chiamata per analizzare una stringa come la data generata dall'identificatore X per strftime.
do_get_weekday Funzione membro virtuale protetta chiamata per analizzare una stringa come il nome del giorno della settimana.
do_get_year Funzione membro virtuale protetta chiamata per analizzare una stringa come il nome dell'anno.
get Legge da un'origine di dati di tipo carattere e converte tali dati in un'ora archiviata in una struct temporale.
get_date Analizza una stringa come la data generata dall'identificatore x per strftime.
get_monthname Analizza una stringa come il nome del mese.
get_time Analizza una stringa come la data generata dall'identificatore X per strftime.
get_weekday Analizza una stringa come il nome del giorno della settimana.
get_year Analizza una stringa come il nome dell'anno.

Requisiti

Intestazione:<impostazioni locali>

Spazio dei nomi: std

time_get::char_type

Tipo utilizzato per descrivere un carattere utilizzato dalle impostazioni locali.

typedef CharType char_type;

Osservazioni:

Il tipo è un sinonimo del parametro di modello CharType.

time_get::d ate_order

Restituisce l'ordine della data utilizzato da un facet.

dateorder date_order() const;

Valore restituito

Ordine della data usato da un facet.

Osservazioni:

La funzione membro restituisce do_date_order.

Esempio

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

Funzione membro virtuale protetta chiamata per restituire l'ordine della data utilizzato da un facet.

virtual dateorder do_date_order() const;

Valore restituito

Ordine della data usato da un facet.

Osservazioni:

La funzione membro virtuale protetta restituisce un valore di tipo time_base::dateorder, che descrive l'ordine in cui i componenti data vengono messi in corrispondenza da do_get_date. In questa implementazione, il valore è time_base::mdy, corrispondente a date nel formato Dicembre 2, 1979.

Esempio

Vedere l'esempio di date_order che chiama do_date_order.

time_get::d o_get

Legge e converte i dati di tipo carattere in un valore di ora. Accetta un unico identificatore di conversione e modificatore.

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;

Parametri

first
Iteratore di input che indica l'inizio della sequenza da convertire.

last
Iteratore di input che indica la fine della sequenza.

iosbase
Oggetto di flusso.

state
Campo in iosbase in cui gli elementi della maschera di bit appropriati vengono impostati per indicare gli errori.

ptm
Puntatore alla struttura temporale in cui deve essere memorizzata l'ora.

Fmt
Carattere dell'identificatore di conversione.

mod
Carattere facoltativo del modificatore.

Valore restituito

Restituisce un iteratore che definisce il primo elemento non convertito. Un errore di conversione viene impostato ios_base::failbit in state e restituisce per primo.

Osservazioni:

La funzione membro virtuale converte e ignora uno o più elementi di input nell'intervallo [first, last) per determinare i valori archiviati in uno o più membri di *pt. Un errore di conversione viene impostato ios_base::failbit in state e restituisce per primo. In caso contrario, la funzione restituisce un iteratore che definisce il primo elemento non convertito.

Gli identificatori di conversione sono:

'a' o 'A' -- si comporta allo stesso modo di time_get::get_weekday.

'b', 'B' o 'h' -- si comporta allo stesso modo di time_get::get_monthname.

'c' -- si comporta allo stesso modo di "%b %d %H : %M : %S %Y".

'C'-converte il valore di un campo di input decimale compreso nell'intervallo [0, 99] nel valore val e archivia val * 100 - 1900 in pt-&tm_year.

'd' o 'e' -- converte il valore di un campo di input decimale compreso nell'intervallo [1, 31] e lo archivia in pt-&tm_mday.

'D' -- si comporta allo stesso modo di "%m / %d / %y".

'H' -- converte il valore di un campo di input decimale compreso nell'intervallo [0, 23] e lo archivia in pt-&tm_hour.

'I' -- converte il valore di un campo di input decimale compreso nell'intervallo [0, 11] e lo archivia in pt-&tm_hour.

'j' -- converte il valore di un campo di input decimale compreso nell'intervallo [1, 366] e lo archivia in pt-&tm_yday.

'm' -- converte il valore di un campo di input decimale compreso nell'intervallo [1, 12] nel valore val e archivia val - 1 in pt-&tm_mon.

'M' -- converte il valore di un campo di input decimale compreso nell'intervallo [0, 59] e lo archivia in pt-&tm_min.

'n' o 't' -- si comporta allo stesso modo di " ".

'p' -- converte "AM" o "am" in zero e "PM" o "PM" in 12 e aggiunge questo valore a pt-&tm_hour.

'r' -- si comporta allo stesso modo di "%I : %M : %S %p".

'R' -- si comporta allo stesso modo di "%H %M".

'S' -- converte il valore di un campo di input decimale compreso nell'intervallo [0, 59] e lo archivia in pt-&tm_sec.

'T' o 'X' -- si comporta allo stesso modo di "%H : %M : S".

'U' -- converte il valore di un campo di input decimale compreso nell'intervallo [0, 53] e lo archivia in pt-&tm_yday.

'w' -- converte il valore di un campo di input decimale compreso nell'intervallo [0, 6] e lo archivia in pt-&tm_wday.

'W' -- converte il valore di un campo di input decimale compreso nell'intervallo [0, 53] e lo archivia in pt-&tm_yday.

'x' -- si comporta allo stesso modo di "%d / %m / %y".

'y'-converte il valore di un campo di input decimale compreso nell'intervallo [0, 99] nel valore val e archivia val < 69 val + 100 : val in pt-&tm_year.

'Y' -- si comporta allo stesso modo di time_get::get_year.

Qualsiasi altro identificatore di conversione imposta ios_base::failbit in state e viene restituito. In questa implementazione, nessun modificatore ha alcun effetto.

time_get::d o_get_date

Funzione membro virtuale protetta chiamata per analizzare una stringa come la data generata dall'identificatore x per strftime.

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

Parametri

first
Iteratore di input che indica l'inizio della sequenza da convertire.

last
Iteratore di input che indica la fine della sequenza da convertire.

iosbase
Flag di formato che, quando impostato, indica che il simbolo di valuta è facoltativo; in caso contrario, indica che è necessario.

state
Imposta elementi della maschera di bit appropriati per lo stato del flusso in base all'esito positivo o negativo delle operazioni.

ptm
Puntatore alla posizione in cui vengono archiviate le informazioni sulla data.

Valore restituito

Iteratore di input che punta al primo elemento oltre il campo di input.

Osservazioni:

La funzione membro virtuale protetta cerca la corrispondenza con elementi sequenziali a partire da first nella sequenza [ first, last) fino a quando non viene riconosciuto un campo di input di tipo data completo e non vuoto. Se ha esito positivo, converte questo campo nel valore equivalente come componenti tm::tm_mon, tm::tm_day e tm::tm_year e archivia i risultati rispettivamente in ptm->tm_mon, ptm->tm_daye ptm->tm_year. Restituisce un iteratore che designa il primo elemento successivo al campo di input di tipo data. In caso contrario, la funzione imposta iosbase::failbit lo stato . Restituisce un iteratore che designa il primo elemento successivo a qualsiasi prefisso di un campo di input di tipo data valido. In entrambi i casi, se il valore restituito è uguale all'ultimo, la funzione imposta ios_base::eofbit lo stato.

Il formato del campo di input di tipo data dipende dalle impostazioni locali. Per le impostazioni locali predefinite, il campo di input di tipo data ha il formato MMM GG, AAAA, dove:

  • MMM viene messo in corrispondenza chiamando get_monthname e specificando il mese.

  • GG è una sequenza di cifre decimali il cui valore numerico corrispondente deve essere compreso nell'intervallo [1, 31], specificando il giorno del mese.

  • YYYY viene messo in corrispondenza chiamando get_year e specificando l'anno.

Gli spazi e le virgole devono corrispondere a quelli della sequenza di input.

Esempio

Vedere l'esempio di get_date, che chiama do_get_date.

time_get::d o_get_monthname

Funzione membro virtuale protetta chiamata per analizzare una stringa come il nome del mese.

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

Parametri

first
Iteratore di input che indica l'inizio della sequenza da convertire.

last
Iteratore di input che indica la fine della sequenza da convertire.

iosbase
Non utilizzato.

state
Parametro di output che imposta elementi della maschera di bit appropriati per lo stato del flusso in base all'esito positivo o negativo delle operazioni.

ptm
Puntatore alla posizione in cui vengono archiviate le informazioni sul mese.

Valore restituito

Iteratore di input che punta al primo elemento oltre il campo di input.

Osservazioni:

La funzione membro virtuale protetta cerca la corrispondenza con elementi sequenziali a partire da first nella sequenza [ first, last) fino a quando non viene riconosciuto un campo di input di tipo mese completo e non vuoto. Se ha esito positivo, converte questo campo nel valore equivalente come componente tm::tm_mon e archivia il risultato in ptm->tm_mon. Restituisce un iteratore che designa il primo elemento successivo al campo di input di tipo mese. In caso contrario, la funzione imposta ios_base::failbit lo stato . Restituisce un iteratore che designa il primo elemento successivo a qualsiasi prefisso di un campo di input di tipo mese valido. In entrambi i casi, se il valore restituito è uguale all'ultimo, la funzione imposta ios_base::eofbit lo stato.

Il campo di input di tipo mese è una sequenza corrispondente alla sequenza più lunga di un set di sequenze specifiche delle impostazioni locali, ad esempio Gen, Gennaio, Feb, Febbraio e così via. Il valore convertito è il numero di mesi a partire da Gennaio.

Esempio

Vedere l'esempio di get_monthname, che chiama do_get_monthname.

time_get::d o_get_time

Funzione membro virtuale protetta chiamata per analizzare una stringa come la data generata dall'identificatore X per strftime.

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

Parametri

first
Iteratore di input che indica l'inizio della sequenza da convertire.

last
Iteratore di input che indica la fine della sequenza da convertire.

iosbase
Non utilizzato.

state
Imposta elementi della maschera di bit appropriati per lo stato del flusso in base all'esito positivo o negativo delle operazioni.

ptm
Puntatore alla posizione in cui vengono archiviate le informazioni sulla data.

Valore restituito

Iteratore di input che punta al primo elemento oltre il campo di input.

Osservazioni:

La funzione membro virtuale protetta cerca la corrispondenza con elementi sequenziali a partire da first nella sequenza [ first, last) fino a quando non viene riconosciuto un campo di input di tipo ora completo e non vuoto. In caso di esito positivo, questo campo viene convertito nel valore equivalente come componenti tm::tm_hour, tm::tm_mine tm::tm_sece archivia i risultati rispettivamente in ptm->tm_hour, ptm->tm_mine ptm->tm_sec. Restituisce un iteratore che designa il primo elemento successivo al campo di input di tipo ora. In caso contrario, la funzione imposta ios_base::failbit lo stato . Restituisce un iteratore che designa il primo elemento successivo a qualsiasi prefisso di un campo di input di tipo ora valido. In entrambi i casi, se il valore restituito è uguale all'ultimo, la funzione imposta ios_base::eofbit lo stato.

In questa implementazione, il campo di input di tipo ora ha il formato HH:MM:SS, dove:

  • HH è una sequenza di cifre decimali il cui valore numerico corrispondente deve essere compreso nell'intervallo [0, 24), specificando l'ora del giorno.

  • MM è una sequenza di cifre decimali il cui valore numerico corrispondente deve essere compreso nell'intervallo [0, 60), specificando i minuti successivi all'ora.

  • SS è una sequenza di cifre decimali il cui valore numerico corrispondente deve essere compreso nell'intervallo [0, 60), specificando i secondi successivi al minuto.

I due punti devono corrispondere a quelli della sequenza di input.

Esempio

Vedere l'esempio di get_time, che chiama do_get_time.

time_get::d o_get_weekday

Funzione membro virtuale protetta chiamata per analizzare una stringa come il nome del giorno della settimana.

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

Parametri

first
Iteratore di input che indica l'inizio della sequenza da convertire.

last
Iteratore di input che indica la fine della sequenza da convertire.

iosbase
Flag di formato che, quando impostato, indica che il simbolo di valuta è facoltativo; in caso contrario, indica che è necessario.

state
Imposta elementi della maschera di bit appropriati per lo stato del flusso in base all'esito positivo o negativo delle operazioni.

ptm
Puntatore alla posizione in cui vengono archiviate le informazioni sul giorno della settimana.

Valore restituito

Iteratore di input che punta al primo elemento oltre il campo di input.

Osservazioni:

La funzione membro protetta virtuale tenta di trovare la corrispondenza con gli elementi sequenziali che iniziano inizialmente nella sequenza [ first, last) fino a quando non viene riconosciuto un campo di input completo e non vuoto della settimana. Se ha esito positivo, converte questo campo nel valore equivalente come componente tm::tm_wday e archivia il risultato in ptm->tm_wday. Restituisce un iteratore che designa il primo elemento successivo al campo di input di tipo giorno della settimana. In caso contrario, la funzione imposta ios_base::failbit lo stato . Restituisce un iteratore che designa il primo elemento successivo a qualsiasi prefisso di un campo di input di tipo giorno della settimana valido. In entrambi i casi, se il valore restituito è uguale all'ultimo, la funzione imposta ios_base::eofbit lo stato.

Il campo di input di tipo giorno della settimana è una sequenza corrispondente alla sequenza più lunga di un set di sequenze specifiche delle impostazioni locali, ad esempio Dom, Domenica, Lun, Lunedì e così via. Il valore convertito è il numero di giorni a partire da Domenica.

Esempio

Vedere l'esempio di get_weekday, che chiama do_get_weekday.

time_get::d o_get_year

Funzione membro virtuale protetta chiamata per analizzare una stringa come il nome dell'anno.

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

Parametri

first
Iteratore di input che indica l'inizio della sequenza da convertire.

last
Iteratore di input che indica la fine della sequenza da convertire.

iosbase
Flag di formato che, quando impostato, indica che il simbolo di valuta è facoltativo; in caso contrario, indica che è necessario.

state
Imposta elementi della maschera di bit appropriati per lo stato del flusso in base all'esito positivo o negativo delle operazioni.

ptm
Puntatore alla posizione in cui vengono archiviate le informazioni sull'anno.

Valore restituito

Iteratore di input che punta al primo elemento oltre il campo di input.

Osservazioni:

La funzione membro protetta virtuale tenta di trovare la corrispondenza con gli elementi sequenziali che iniziano inizialmente nella sequenza [ first, last) fino a quando non viene riconosciuto un campo di input completo e non vuoto. Se ha esito positivo, converte questo campo nel valore equivalente come componente tm::tm_year e archivia il risultato in ptm->tm_year. Restituisce un iteratore che designa il primo elemento successivo al campo di input di tipo anno. In caso contrario, la funzione imposta ios_base::failbit lo stato . Restituisce un iteratore che designa il primo elemento successivo a qualsiasi prefisso di un campo di input di tipo anno valido. In entrambi i casi, se il valore restituito è uguale all'ultimo, la funzione imposta ios_base::eofbit lo stato.

Il campo di input di tipo anno è una sequenza di cifre decimali il cui valore numerico corrispondente deve essere compreso nell'intervallo [1900, 2036). Il valore archiviato è questo valore meno 1900. In questa implementazione i valori compresi nell'intervallo [69, 136) rappresentano l'intervallo di anni [1969, 2036). Sono consentiti anche i valori compresi nell'intervallo [0, 69). Tali valori, tuttavia, possono rappresentare l'intervallo di anni [1900, 1969) o l'intervallo di anni [2000, 2069), a seconda dell'ambiente di conversione specifico.

Esempio

Vedere l'esempio di get_year, che chiama do_get_year.

time_get::get

Legge da un'origine di dati di tipo carattere e converte tali dati in un'ora archiviata in una struct temporale. La prima funzione accetta un identificatore di conversione e il modificatore, la seconda ne accetta diversi.

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;

Parametri

first
Iteratore di input che indica il punto di inizio della sequenza da convertire.

last
Iteratore di input che indica la fine della sequenza da convertire.

iosbase
Flusso.

state
Gli elementi della maschera di bit appropriati sono impostati in modo che lo stato del flusso indichi gli errori.

ptm
Puntatore alla struttura temporale in cui deve essere memorizzata l'ora.

Fmt
Carattere dell'identificatore di conversione.

mod
Carattere facoltativo del modificatore.

fmt_first
Punta alla posizione iniziale delle direttive di formato.

fmt_last
Punta alla posizione finale delle direttive di formato.

Valore restituito

Restituisce un iteratore al primo carattere dopo i dati utilizzati per assegnare lo struct *ptmdell'ora .

Osservazioni:

La prima funzione membro restituisce do_get(first, last, iosbase, state, ptm, fmt, mod).

La seconda funzione membro chiama do_get sotto il controllo del formato delimitato da [fmt_first, fmt_last). Considera il formato come una sequenza di campi, ciascuno dei quali determina la conversione di zero o più elementi di input delimitati da [first, last). Restituisce un iteratore che definisce il primo elemento non convertito. Esistono tre tipi di campi:

Un per cento (%) nel formato, seguito da un modificatore facoltativo nel set [EOQ#], seguito da un identificatore di conversione fmt, sostituisce prima con il valore restituito da do_get(first, last, iosbase, state, ptm, fmt, mod). Un errore di conversione imposta ios_base::failbit lo stato e restituisce.

Un elemento dello spazio vuoto nel formato ignora dopo lo zero o più elementi di input dello spazio vuoto.

Qualsiasi altro elemento nel formato deve corrispondere all'elemento di input successivo, che verrà ignorato. Un errore di corrispondenza imposta ios_base::failbit lo stato e restituisce.

time_get::get_date

Analizza una stringa come la data generata dall'identificatore x per strftime.

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

Parametri

first
Iteratore di input che indica l'inizio della sequenza da convertire.

last
Iteratore di input che indica la fine della sequenza da convertire.

iosbase
Flag di formato che, quando impostato, indica che il simbolo di valuta è facoltativo; in caso contrario, indica che è necessario.

state
Imposta elementi della maschera di bit appropriati per lo stato del flusso in base all'esito positivo o negativo delle operazioni.

ptm
Puntatore alla posizione in cui vengono archiviate le informazioni sulla data.

Valore restituito

Iteratore di input che punta al primo elemento oltre il campo di input.

Osservazioni:

La funzione membro restituisce do_get_date(first, last, iosbase, state, ptm).

Si noti che i mesi vengono conteggiati da 0 a 11.

Esempio

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

Analizza una stringa come il nome del mese.

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

Parametri

first
Iteratore di input che indica l'inizio della sequenza da convertire.

last
Iteratore di input che indica la fine della sequenza da convertire.

iosbase
Non utilizzato.

state
Parametro di output che imposta elementi della maschera di bit appropriati per lo stato del flusso in base all'esito positivo o negativo delle operazioni.

ptm
Puntatore alla posizione in cui vengono archiviate le informazioni sul mese.

Valore restituito

Iteratore di input che punta al primo elemento oltre il campo di input.

Osservazioni:

La funzione membro restituisce do_get_monthname(first, last, iosbase, state, ). ptm

Esempio

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

Analizza una stringa come la data generata dall'identificatore X per strftime.

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

Parametri

first
Iteratore di input che indica l'inizio della sequenza da convertire.

last
Iteratore di input che indica la fine della sequenza da convertire.

iosbase
Non utilizzato.

state
Imposta elementi della maschera di bit appropriati per lo stato del flusso in base all'esito positivo o negativo delle operazioni.

ptm
Puntatore alla posizione in cui vengono archiviate le informazioni sulla data.

Valore restituito

Iteratore di input che punta al primo elemento oltre il campo di input.

Osservazioni:

La funzione membro restituisce do_get_time(first, last, iosbase, state, ptm).

Esempio

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

Analizza una stringa come il nome del giorno della settimana.

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

Parametri

first
Iteratore di input che indica l'inizio della sequenza da convertire.

last
Iteratore di input che indica la fine della sequenza da convertire.

iosbase
Flag di formato che, quando impostato, indica che il simbolo di valuta è facoltativo; in caso contrario, indica che è necessario.

state
Imposta elementi della maschera di bit appropriati per lo stato del flusso in base all'esito positivo o negativo delle operazioni.

ptm
Puntatore alla posizione in cui vengono archiviate le informazioni sul giorno della settimana.

Valore restituito

Iteratore di input che punta al primo elemento oltre il campo di input.

Osservazioni:

La funzione membro restituisce do_get_weekday(first, last, iosbase, state, ptm).

Esempio

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

Analizza una stringa come il nome dell'anno.

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

Parametri

first
Iteratore di input che indica l'inizio della sequenza da convertire.

last
Iteratore di input che indica la fine della sequenza da convertire.

iosbase
Flag di formato che, quando impostato, indica che il simbolo di valuta è facoltativo; in caso contrario, indica che è necessario.

state
Imposta elementi della maschera di bit appropriati per lo stato del flusso in base all'esito positivo o negativo delle operazioni.

ptm
Puntatore alla posizione in cui vengono archiviate le informazioni sull'anno.

Valore restituito

Iteratore di input che punta al primo elemento oltre il campo di input.

Osservazioni:

La funzione membro restituisce do_get_year(first, last, iosbase, state, ptm).

Esempio

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

Tipo che descrive un iteratore di input.

typedef InputIterator iter_type;

Osservazioni:

Il tipo è un sinonimo del parametro di modello InputIterator.

time_get::time_get

Costruttore per oggetti di tipo time_get.

explicit time_get(size_t refs = 0);

Parametri

Refs
Valore Integer che consente di specificare il tipo di gestione della memoria per l'oggetto.

Osservazioni:

I valori possibili per il parametro refs e il loro significato sono:

  • 0: la durata dell'oggetto è gestita dalle impostazioni locali che lo contengono.

  • 1: la durata dell'oggetto deve essere gestita manualmente.

  • > 1: questi valori non sono definiti.

Non è possibile fornire esempi diretti, poiché il distruttore è protetto.

Il costruttore inizializza l'oggetto di base con locale::facet(refs).

Vedi anche

<impostazioni locali>
Classe time_base
Thread Safety in the C++ Standard Library (Sicurezza dei thread nella libreria standard C++)