time_get, classe
Le modèle de classe décrit un objet qui peut servir de facette de paramètres régionaux pour contrôler les conversions de séquences de type CharType
en valeurs de temps.
Syntaxe
template <class CharType,
class InputIterator = istreambuf_iterator<CharType>>
class time_get : public time_base;
Paramètres
CharType
Type utilisé dans le cadre d'un programme pour encoder des caractères.
InputIterator
Itérateur dont les valeurs temporelles sont lues.
Notes
Comme avec n'importe quelle facette de paramètres régionaux, l'ID d'objet statique possède une valeur stockée initiale de zéro. La première tentative d’accès à sa valeur stockée entraîne le stockage d’une valeur positive unique dans id.
Constructeurs
Constructeur | Description |
---|---|
time_get | Constructeur des objets de type time_get . |
Typedefs
Nom de type | Description |
---|---|
char_type | Type utilisé pour décrire un caractère utilisé par des paramètres régionaux. |
iter_type | Type qui décrit un itérateur d'entrée. |
Fonctions Membre
Fonction membre | Description |
---|---|
date_order | Retourne l'ordre de date utilisé par une facette. |
do_date_order | Fonction membre virtuelle qui est appelée pour retourner l'ordre de date utilisé par une facette. |
do_get | Lit, puis convertit des données de caractères en valeur temporelle. |
do_get_date | Fonction membre virtuelle appelée pour analyser une chaîne représentant une date générée par le spécificateur x pour strftime . |
do_get_monthname | Fonction membre virtuelle appelée pour analyser une chaîne représentant le nom du mois. |
do_get_time | Fonction membre virtuelle appelée pour analyser une chaîne représentant une date générée par le spécificateur X pour strftime . |
do_get_weekday | Fonction membre virtuelle appelée pour analyser une chaîne représentant le nom du jour de la semaine. |
do_get_year | Fonction membre virtuelle appelée pour analyser une chaîne représentant le nom de l'année. |
get | Lit une source de données de caractères et convertit ces données en heure, puis stocke cette dernière dans un struct d'heure. |
get_date | Analyse une chaîne représentant la date générée par le spécificateur x pour strftime . |
get_monthname | Analyse une chaîne représentant le nom du mois. |
get_time | Analyse une chaîne représentant la date générée par le spécificateur X pour strftime . |
get_weekday | Analyse une chaîne représentant le nom du jour de la semaine. |
get_year | Analyse une chaîne représentant le nom de l'année. |
Spécifications
Header :<locale>
Espace de noms : std
time_get ::char_type
Type utilisé pour décrire un caractère utilisé par des paramètres régionaux.
typedef CharType char_type;
Notes
Le type est un synonyme du paramètre de modèle CharType.
time_get ::d ate_order
Retourne l'ordre de date utilisé par une facette.
dateorder date_order() const;
Valeur de retour
L’ordre de date utilisé par une facette.
Notes
La fonction membre retourne do_date_order.
Exemple
// 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
Fonction membre virtuelle qui est appelée pour retourner l'ordre de date utilisé par une facette.
virtual dateorder do_date_order() const;
Valeur de retour
L’ordre de date utilisé par une facette.
Notes
La fonction membre protégée virtuelle retourne une valeur de type time_base::dateorder, qui décrit l’ordre dans lequel les composants de date sont mis en correspondance par do_get_date. Dans cette implémentation, la valeur est time_base::mdy, qui correspond aux dates de la forme décembre 2, 1979.
Exemple
Consultez l’exemple relatif à date_order, qui appelle do_date_order
.
time_get ::d o_get
Lit, puis convertit des données de caractères en valeur temporelle. Accepte un spécificateur et un modificateur de conversion.
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;
Paramètres
first
Itérateur d'entrée qui indique le début de la séquence à convertir.
last
Itérateur d'entrée qui indique la fin de la séquence.
iosbase
Objet de flux.
state
Un champ dans iosbase où les éléments de masque de bits appropriés sont définis pour indiquer des erreurs.
ptm
Pointeur vers la structure time, où l'heure doit être stockée.
Fmt
Caractère de spécificateur de conversion.
mod
Caractère de modificateur facultatif.
Valeur de retour
Retourne un itérateur qui désigne le premier élément non converti. Un échec de conversion se définit ios_base::failbit
et state
retourne d’abord.
Notes
La fonction membre virtuelle convertit et ignore un ou plusieurs éléments d’entrée dans la plage [first
, last
) pour déterminer les valeurs stockées dans un ou plusieurs membres de *pt
. Un échec de conversion se définit ios_base::failbit
et state
retourne d’abord. Sinon, la fonction retourne un itérateur désignant le premier élément non converti.
Les spécificateurs de conversion sont :
'a'
ou 'A'
: se comporte comme time_get::get_weekday.
'b'
, 'B'
ou 'h'
: se comporte comme time_get::get_monthname.
'c'
: se comporte comme "%b %d %H : %M : %S %Y"
.
'C'
: convertit un champ d'entrée décimal dans la plage [0, 99] en valeur val
et stocke val * 100 - 1900
dans pt-&tm_year
.
'd'
ou 'e'
: convertit un champ d'entrée décimal dans la plage [1, 31] et stocke sa valeur dans pt-&tm_mday
.
'D'
: se comporte comme "%m / %d / %y"
.
'H'
: convertit un champ d'entrée décimal dans la plage [0, 23] et stocke sa valeur dans pt-&tm_hour
.
'I'
: convertit un champ d'entrée décimal dans la plage [0, 11] et stocke sa valeur dans pt-&tm_hour
.
'j'
: convertit un champ d'entrée décimal dans la plage [1, 366] et stocke sa valeur dans pt-&tm_yday
.
'm'
: convertit un champ d'entrée décimal dans la plage [1, 12] en valeur val
et stocke sa valeur val - 1
dans pt-&tm_mon
.
'M'
: convertit un champ d'entrée décimal dans la plage [0, 59] et stocke sa valeur dans pt-&tm_min
.
'n'
ou 't'
: se comporte comme " "
.
'p'
: convertit « AM » ou « am » en zéro et « PM » ou « pm » en 12, et ajoute cette valeur à pt-&tm_hour
.
'r'
: se comporte comme "%I : %M : %S %p"
.
'R'
: se comporte comme "%H %M"
.
'S'
: convertit un champ d'entrée décimal dans la plage [0, 59] et stocke sa valeur dans pt-&tm_sec
.
'T'
ou 'X'
: se comporte comme "%H : %M : S"
.
'U'
: convertit un champ d'entrée décimal dans la plage [0, 53] et stocke sa valeur dans pt-&tm_yday
.
'w'
: convertit un champ d'entrée décimal dans la plage [0, 6] et stocke sa valeur dans pt-&tm_wday
.
'W'
: convertit un champ d'entrée décimal dans la plage [0, 53] et stocke sa valeur dans pt-&tm_yday
.
'x'
: se comporte comme "%d / %m / %y"
.
'y'
: convertit un champ d'entrée décimal dans la plage [0, 99] en valeur val
et stocke val < 69 val + 100 : val
dans pt-&tm_year
.
'Y'
: se comporte comme time_get::get_year.
Tous les autres spécificateurs de conversion définissent ios_base::failbit
dans state
et reviennent à l'appelant. Dans cette implémentation, les modificateurs n'ont pas d'effet.
time_get ::d o_get_date
Fonction membre protégée virtuelle appelée pour analyser une chaîne représentant une date générée par le spécificateur x pour strftime
.
virtual iter_type do_get_date(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Paramètres
first
Itérateur d’entrée traitant le début de la séquence à convertir.
last
Itérateur d’entrée traitant la fin de la séquence à convertir.
iosbase
Indicateur de format qui, quand il est défini, indique que le symbole monétaire est facultatif. Dans le cas contraire, il est obligatoire.
state
Définit les éléments de masque de bits appropriés pour l’état de flux selon que les opérations ont réussi ou non.
ptm
Pointeur vers l’emplacement où les informations de date doivent être stockées.
Valeur de retour
Itérateur d’entrée qui traite le premier élément au-delà du champ d’entrée.
Notes
La fonction membre protégée virtuelle tente de mettre en correspondance les éléments séquentiels en commençant par le premier dans la séquence [ first
, last
) jusqu’à ce qu’elle ait reconnu un champ d’entrée de date non vide, complet. Si elle réussit, elle convertit ce champ en sa valeur équivalente en tant que composants tm ::tm_mon, tm ::tm_day et tm ::tm_year, et stocke les résultats dans ptm->tm_mon
, ptm->tm_day
et ptm->tm_year
, respectivement. Elle retourne un itérateur désignant le premier élément au-delà du champ d’entrée de date. Sinon, les jeux iosbase::failbit
de fonctions sont à l’état. Elle retourne un itérateur désignant le premier élément au-delà de tout préfixe d’un champ d’entrée de date valide. Dans les deux cas, si la valeur de retour est égale à la dernière, la fonction est définie ios_base::eofbit
en état.
Le format du champ d’entrée de date dépend des paramètres régionaux. Pour les paramètres régionaux par défaut, le champ d’entrée de date a la forme MMM JJ, AAAA, où :
MMM est mis en correspondance en appelant get_monthname, ce qui donne le mois.
JJ est une séquence de chiffres décimaux dont la valeur numérique correspondante doit être comprise dans la plage [1, 31], ce qui donne le jour du mois.
AAAA est mis en correspondance en appelant get_year, ce qui donne l’année.
Les virgules et les espaces littéraux doivent correspondre aux éléments correspondants dans la séquence d’entrée.
Exemple
Consultez l’exemple relatif à get_date, qui appelle do_get_date
.
time_get ::d o_get_monthname
Fonction membre virtuelle appelée pour analyser une chaîne représentant le nom du mois.
virtual iter_type do_get_monthname(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Paramètres
first
Itérateur d’entrée traitant le début de la séquence à convertir.
last
Itérateur d’entrée traitant la fin de la séquence à convertir.
iosbase
Inutilisé.
state
Paramètre de sortie qui définit les éléments de masque de bits appropriés pour l’état de flux selon que les opérations ont réussi ou non.
ptm
Pointeur vers l’emplacement où les informations de mois doivent être stockées.
Valeur de retour
Itérateur d’entrée qui traite le premier élément au-delà du champ d’entrée.
Notes
La fonction membre protégée virtuelle tente de mettre en correspondance les éléments séquentiels en commençant par le premier dans la séquence [ first
, last
) jusqu’à ce qu’elle ait reconnu un champ d’entrée de mois non vide, complet. En cas de réussite, il convertit ce champ en sa valeur équivalente en tant que composant tm ::tm_mon et stocke le résultat dans ptm->tm_mon
. Elle retourne un itérateur désignant le premier élément au-delà du champ d’entrée de mois. Sinon, les jeux ios_base::failbit
de fonctions sont à l’état. Elle retourne un itérateur désignant le premier élément au-delà de tout préfixe d’un champ d’entrée de mois valide. Dans les deux cas, si la valeur de retour est égale à la dernière, la fonction est définie ios_base::eofbit
en état.
Le champ d’entrée du mois est une séquence qui correspond à la plus longue séquence d’un ensemble de séquences spécifiques aux paramètres régionaux, telles que Jan, janvier, Fév, février, etc. La valeur convertie est le nombre de mois depuis janvier.
Exemple
Consultez l’exemple relatif à get_monthname, qui appelle do_get_monthname
.
time_get ::d o_get_time
Fonction membre protégée virtuelle appelée pour analyser une chaîne représentant une date générée par le spécificateur X pour strftime
.
virtual iter_type do_get_time(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Paramètres
first
Itérateur d’entrée traitant le début de la séquence à convertir.
last
Itérateur d’entrée traitant la fin de la séquence à convertir.
iosbase
Inutilisé.
state
Définit les éléments de masque de bits appropriés pour l’état de flux selon que les opérations ont réussi ou non.
ptm
Pointeur vers l’emplacement où les informations de date doivent être stockées.
Valeur de retour
Itérateur d’entrée qui traite le premier élément au-delà du champ d’entrée.
Notes
La fonction membre protégée virtuelle tente de mettre en correspondance les éléments séquentiels en commençant par le premier dans la séquence [ first
, last
) jusqu’à ce qu’elle ait reconnu un champ d’entrée d’heure non vide, complet. En cas de réussite, il convertit ce champ en sa valeur équivalente en tant que composants tm::tm_hour
, tm::tm_min
et tm::tm_sec
stocke les résultats dans ptm->tm_hour
, ptm->tm_min
et ptm->tm_sec
, respectivement. Elle retourne un itérateur désignant le premier élément au-delà du champ d’entrée d’heure. Sinon, les jeux ios_base::failbit
de fonctions sont à l’état. Elle retourne un itérateur désignant le premier élément au-delà de tout préfixe d’un champ d’entrée d’heure valide. Dans les deux cas, si la valeur de retour est égale à la dernière, la fonction est définie ios_base::eofbit
en état.
Dans cette implémentation, le champ d’entrée d’heure a la forme HH:MM:SS, où :
HH est une séquence de chiffres décimaux dont la valeur numérique correspondante doit être comprise dans la plage [0, 24], ce qui donne l’heure du jour.
MM est une séquence de chiffres décimaux dont la valeur numérique correspondante doit être comprise dans la plage [0, 60], ce qui donne les minutes.
SS est une séquence de chiffres décimaux dont la valeur numérique correspondante doit être comprise dans la plage [0, 60], ce qui donne les secondes.
Les deux-points littéraux doivent correspondre aux éléments correspondants dans la séquence d’entrée.
Exemple
Consultez l’exemple relatif à get_time, qui appelle do_get_time
.
time_get ::d o_get_week
Fonction membre virtuelle appelée pour analyser une chaîne représentant le nom du jour de la semaine.
virtual iter_type do_get_weekday(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Paramètres
first
Itérateur d’entrée traitant le début de la séquence à convertir.
last
Itérateur d’entrée traitant la fin de la séquence à convertir.
iosbase
Indicateur de format qui, quand il est défini, indique que le symbole monétaire est facultatif. Dans le cas contraire, il est obligatoire.
state
Définit les éléments de masque de bits appropriés pour l’état de flux selon que les opérations ont réussi ou non.
ptm
Pointeur vers l’emplacement où les informations de jour de la semaine doivent être stockées.
Valeur de retour
Itérateur d’entrée qui traite le premier élément au-delà du champ d’entrée.
Notes
La fonction membre protégée virtuelle tente de faire correspondre les éléments séquentiels commençant d’abord dans la séquence [ first
, last
) jusqu’à ce qu’elle ait reconnu un champ d’entrée complet et sans problème de la semaine. Si elle réussit, elle convertit ce champ en sa valeur équivalente en tant que composant tm ::tm_wday et stocke le résultat.ptm->tm_wday
Elle retourne un itérateur désignant le premier élément au-delà du champ d’entrée de jour de la semaine. Sinon, les jeux ios_base::failbit
de fonctions sont à l’état. Elle retourne un itérateur désignant le premier élément au-delà de tout préfixe d’un champ d’entrée de jour de la semaine valide. Dans les deux cas, si la valeur de retour est égale à la dernière, la fonction est définie ios_base::eofbit
en état.
Le champ d’entrée de jour de la semaine est une séquence qui correspond à la plus longue séquence d’un ensemble de séquences spécifiques aux paramètres régionaux, telles que Dim, Dimanche, Lun, Lundi, etc. La valeur convertie est le nombre de jours depuis Dimanche.
Exemple
Consultez l’exemple relatif à get_weekday, qui appelle do_get_weekday
.
time_get ::d o_get_year
Fonction membre virtuelle appelée pour analyser une chaîne représentant le nom de l'année.
virtual iter_type do_get_year(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Paramètres
first
Itérateur d’entrée traitant le début de la séquence à convertir.
last
Itérateur d’entrée traitant la fin de la séquence à convertir.
iosbase
Indicateur de format qui, quand il est défini, indique que le symbole monétaire est facultatif. Dans le cas contraire, il est obligatoire.
state
Définit les éléments de masque de bits appropriés pour l’état de flux selon que les opérations ont réussi ou non.
ptm
Pointeur vers l’emplacement où les informations d’année doivent être stockées.
Valeur de retour
Itérateur d’entrée qui traite le premier élément au-delà du champ d’entrée.
Notes
La fonction membre protégée virtuelle tente de mettre en correspondance les éléments séquentiels commençant d’abord dans la séquence [ first
, last
) jusqu’à ce qu’elle ait reconnu un champ d’entrée d’année complet et sansmpty. Si elle réussit, elle convertit ce champ en sa valeur équivalente en tant que composant tm ::tm_year et stocke le résultat.ptm->tm_year
Elle retourne un itérateur désignant le premier élément au-delà du champ d’entrée d’année. Sinon, les jeux ios_base::failbit
de fonctions sont à l’état. Elle retourne un itérateur désignant le premier élément au-delà de tout préfixe d’un champ d’entrée d’année valide. Dans les deux cas, si la valeur de retour est égale à la dernière, la fonction est définie ios_base::eofbit
en état.
Le champ d’entrée d’année est une séquence de chiffres décimaux dont la valeur numérique correspondante doit être comprise dans la plage [1900, 2036). La valeur stockée est égale à cette valeur moins 1900. Dans cette implémentation, les valeurs de la plage [69, 136) représentent la plage d’années [1969, 2036). Les valeurs de la plage [0, 69) sont également possibles, mais peuvent représenter la plage d’années [1900, 1969) ou [2000, 2069), selon l’environnement de traduction spécifique.
Exemple
Consultez l’exemple relatif à get_year, qui appelle do_get_year
.
time_get ::get
Lit une source de données de caractères et convertit ces données en heure, puis stocke cette dernière dans un struct d'heure. La première fonction accepte un spécificateur et un modificateur de conversion, la seconde en accepte plusieurs.
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;
Paramètres
first
Itérateur d'entrée qui indique le début de la séquence à convertir.
last
Itérateur d'entrée qui indique la fin de la séquence à convertir.
iosbase
Flux.
state
Les éléments du masque de bits appropriés sont définis pour l'état du flux et indiquent les erreurs.
ptm
Pointeur vers la structure time, où la date/heure doit être stockée.
Fmt
Caractère de spécificateur de conversion.
mod
Caractère de modificateur facultatif.
fmt_first
Pointe là où les directives de format commencent.
fmt_last
Pointe vers la fin des directives de format.
Valeur de retour
Retourne un itérateur au premier caractère après les données utilisées pour affecter le struct *ptm
de temps .
Notes
La première fonction membre retourne do_get(first, last, iosbase, state, ptm, fmt, mod)
.
La seconde fonction membre appelle do_get
sous le contrôle du format délimité par [fmt_first, fmt_last)
. Elle traite le format comme une séquence de champs, chacun d'entre eux déterminant la conversion de zéro ou plus entrées d'éléments, délimités par [first, last)
. Elle retourne un itérateur qui désigne le premier élément non converti. Il existe trois types de champs :
Un pourcentage (%) dans le format, suivi d’un mod modificateur facultatif dans l’ensemble [EOQ#], suivi d’un spécificateur de conversion fmt, remplace d’abord par la valeur retournée par do_get(first, last, iosbase, state, ptm, fmt, mod)
. Un échec de conversion est définit ios_base::failbit
dans l’état et retourne.
Un élément d'espace dans le format ignore zéro ou plus éléments d'espace d'entrée.
Tout autre élément dans le format doit correspondre à l'élément d'entrée suivant, qui est ignoré. Un échec de correspondance est établi ios_base::failbit
dans l’état et retourne.
time_get ::get_date
Analyse une chaîne représentant la date générée par le spécificateur x pour strftime
.
iter_type get_date(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Paramètres
first
Itérateur d’entrée traitant le début de la séquence à convertir.
last
Itérateur d’entrée traitant la fin de la séquence à convertir.
iosbase
Indicateur de format qui, quand il est défini, indique que le symbole monétaire est facultatif. Dans le cas contraire, il est obligatoire.
state
Définit les éléments de masque de bits appropriés pour l’état de flux selon que les opérations ont réussi ou non.
ptm
Pointeur vers l’emplacement où les informations de date doivent être stockées.
Valeur de retour
Itérateur d’entrée qui traite le premier élément au-delà du champ d’entrée.
Notes
La fonction membre retourne do_get_date(first
, last
, iosbase
, state
, ). ptm
Notez que les mois sont numérotés de 0 à 11.
Exemple
// 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
Analyse une chaîne représentant le nom du mois.
iter_type get_monthname(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Paramètres
first
Itérateur d’entrée traitant le début de la séquence à convertir.
last
Itérateur d’entrée traitant la fin de la séquence à convertir.
iosbase
Inutilisé.
state
Paramètre de sortie qui définit les éléments de masque de bits appropriés pour l’état de flux selon que les opérations ont réussi ou non.
ptm
Pointeur vers l’emplacement où les informations de mois doivent être stockées.
Valeur de retour
Itérateur d’entrée qui traite le premier élément au-delà du champ d’entrée.
Notes
La fonction membre retourne do_get_monthname(first
, last
, iosbase
, state
, ). ptm
Exemple
// 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
Analyse une chaîne représentant la date générée par le spécificateur X pour strftime
.
iter_type get_time(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Paramètres
first
Itérateur d’entrée traitant le début de la séquence à convertir.
last
Itérateur d’entrée traitant la fin de la séquence à convertir.
iosbase
Inutilisé.
state
Définit les éléments de masque de bits appropriés pour l’état de flux selon que les opérations ont réussi ou non.
ptm
Pointeur vers l’emplacement où les informations de date doivent être stockées.
Valeur de retour
Itérateur d’entrée qui traite le premier élément au-delà du champ d’entrée.
Notes
La fonction membre retourne do_get_time(first
, last
, iosbase
, state
, ). ptm
Exemple
// 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
Analyse une chaîne représentant le nom du jour de la semaine.
iter_type get_weekday(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Paramètres
first
Itérateur d’entrée traitant le début de la séquence à convertir.
last
Itérateur d’entrée traitant la fin de la séquence à convertir.
iosbase
Indicateur de format qui, quand il est défini, indique que le symbole monétaire est facultatif. Dans le cas contraire, il est obligatoire.
state
Définit les éléments de masque de bits appropriés pour l’état de flux selon que les opérations ont réussi ou non.
ptm
Pointeur vers l’emplacement où les informations de jour de la semaine doivent être stockées.
Valeur de retour
Itérateur d’entrée qui traite le premier élément au-delà du champ d’entrée.
Notes
La fonction membre retourne do_get_weekday(first
, last
, iosbase
, state
, ). ptm
Exemple
// 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
Analyse une chaîne représentant le nom de l'année.
iter_type get_year(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Paramètres
first
Itérateur d’entrée traitant le début de la séquence à convertir.
last
Itérateur d’entrée traitant la fin de la séquence à convertir.
iosbase
Indicateur de format qui, quand il est défini, indique que le symbole monétaire est facultatif. Dans le cas contraire, il est obligatoire.
state
Définit les éléments de masque de bits appropriés pour l’état de flux selon que les opérations ont réussi ou non.
ptm
Pointeur vers l’emplacement où les informations d’année doivent être stockées.
Valeur de retour
Itérateur d’entrée qui traite le premier élément au-delà du champ d’entrée.
Notes
La fonction membre retourne do_get_year(first
, last
, iosbase
, state
, ). ptm
Exemple
// 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
Type qui décrit un itérateur d'entrée.
typedef InputIterator iter_type;
Notes
Le type est un synonyme du paramètre de modèle InputIterator.
time_get ::time_get
Constructeur des objets de type time_get
.
explicit time_get(size_t refs = 0);
Paramètres
Refs
Valeur entière qui sert à spécifier le type de gestion de la mémoire pour l’objet.
Notes
Les valeurs possibles pour le paramètre refs et leur signification sont les suivantes :
0 : la durée de vie de l’objet est gérée par les paramètres régionaux qui le contiennent.
1 : la durée de vie de l’objet doit être gérée manuellement.
> 1 : Ces valeurs ne sont pas définies.
Aucun exemple direct n’est possible, car le destructeur est protégé.
Le constructeur initialise son objet de base avec les paramètres régionaux ::facet(refs
).
Voir aussi
<locale>
time_base, classe
Sécurité des threads dans la bibliothèque C++ Standard