Bonjour, j'essaye de trouver un =E9quivalent de la fonction strptime
pour windows, mais apr=E8s plusieurs heures de recherche dans les mans,
je ne la trouve pas !
Auriez vous une id=E9e de ce que je pourrais utiliser pour convertir un
string en systime ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Loïc Joly
Bonjour, j'essaye de trouver un équivalent de la fonction strptime pour windows, mais après plusieurs heures de recherche dans les mans, je ne la trouve pas !
Auriez vous une idée de ce que je pourrais utiliser pour convertir un string en systime ?
Je ne connais pas strptime, mais pour des conversions de string vers une durée, je me dirigerais vers boost::date_time.
-- Loïc
Bonjour, j'essaye de trouver un équivalent de la fonction strptime
pour windows, mais après plusieurs heures de recherche dans les mans,
je ne la trouve pas !
Auriez vous une idée de ce que je pourrais utiliser pour convertir un
string en systime ?
Je ne connais pas strptime, mais pour des conversions de string vers une
durée, je me dirigerais vers boost::date_time.
Bonjour, j'essaye de trouver un équivalent de la fonction strptime pour windows, mais après plusieurs heures de recherche dans les mans, je ne la trouve pas !
Auriez vous une idée de ce que je pourrais utiliser pour convertir un string en systime ?
Je ne connais pas strptime, mais pour des conversions de string vers une durée, je me dirigerais vers boost::date_time.
-- Loïc
Fabien LE LEZ
On 2 Apr 2007 10:35:14 -0700, :
Bonjour, j'essaye de trouver un équivalent de la fonction strptime pour windows, mais après plusieurs heures de recherche dans les mans,
C'est logique, les "man pages" donnent généralement des informations pour Linux et autres Unix.
Si tu veux des informations pour Windows, le forum adéquat est fr.comp.os.ms-windows.programmation, et le site web de référence est <http://msdn.microsoft.com>.
On 2 Apr 2007 10:35:14 -0700, actuados@gmail.com:
Bonjour, j'essaye de trouver un équivalent de la fonction strptime
pour windows, mais après plusieurs heures de recherche dans les mans,
C'est logique, les "man pages" donnent généralement des informations
pour Linux et autres Unix.
Si tu veux des informations pour Windows, le forum adéquat est
fr.comp.os.ms-windows.programmation, et le site web de référence est
<http://msdn.microsoft.com>.
Bonjour, j'essaye de trouver un équivalent de la fonction strptime pour windows, mais après plusieurs heures de recherche dans les mans,
C'est logique, les "man pages" donnent généralement des informations pour Linux et autres Unix.
Si tu veux des informations pour Windows, le forum adéquat est fr.comp.os.ms-windows.programmation, et le site web de référence est <http://msdn.microsoft.com>.
Sylvain
wrote on 02/04/2007 19:35:
Bonjour, j'essaye de trouver un équivalent de la fonction strptime pour windows, mais après plusieurs heures de recherche dans les mans, je ne la trouve pas !
normal cela n'existe pas dans les CRT windows. strptime est (en gros) un habillage de scanf pour lire différents champs à stocker dans une référence unique strptime(timeStr, fmt, &tm); évitant le sscanf(timeStr, fmt, [&year,] [&mnth,] [&days,] ...);
Auriez vous une idée de ce que je pourrais utiliser pour convertir un string en systime ?
aucune solution via un CRT windows classique (ie MS) qui ne fournit aucune fonction 'champ texte formatté' vers 'structure date/time'.
les MFC fournissent par contre quelque utilitaires dont la classe COleDateTime qui dispose d'une méthode ParseDateTime - c'est la plus proche de strptime, elle n'attends pas de descripteur de format mais prétends tout deviner toute seule, résultat ça passe ou ça casse.
Sylvain.
actuados@gmail.com wrote on 02/04/2007 19:35:
Bonjour, j'essaye de trouver un équivalent de la fonction strptime
pour windows, mais après plusieurs heures de recherche dans les mans,
je ne la trouve pas !
normal cela n'existe pas dans les CRT windows.
strptime est (en gros) un habillage de scanf pour lire différents champs
à stocker dans une référence unique
strptime(timeStr, fmt, &tm);
évitant le
sscanf(timeStr, fmt, [&year,] [&mnth,] [&days,] ...);
Auriez vous une idée de ce que je pourrais utiliser pour convertir un
string en systime ?
aucune solution via un CRT windows classique (ie MS) qui ne fournit
aucune fonction 'champ texte formatté' vers 'structure date/time'.
les MFC fournissent par contre quelque utilitaires dont la classe
COleDateTime qui dispose d'une méthode ParseDateTime - c'est la plus
proche de strptime, elle n'attends pas de descripteur de format mais
prétends tout deviner toute seule, résultat ça passe ou ça casse.
Bonjour, j'essaye de trouver un équivalent de la fonction strptime pour windows, mais après plusieurs heures de recherche dans les mans, je ne la trouve pas !
normal cela n'existe pas dans les CRT windows. strptime est (en gros) un habillage de scanf pour lire différents champs à stocker dans une référence unique strptime(timeStr, fmt, &tm); évitant le sscanf(timeStr, fmt, [&year,] [&mnth,] [&days,] ...);
Auriez vous une idée de ce que je pourrais utiliser pour convertir un string en systime ?
aucune solution via un CRT windows classique (ie MS) qui ne fournit aucune fonction 'champ texte formatté' vers 'structure date/time'.
les MFC fournissent par contre quelque utilitaires dont la classe COleDateTime qui dispose d'une méthode ParseDateTime - c'est la plus proche de strptime, elle n'attends pas de descripteur de format mais prétends tout deviner toute seule, résultat ça passe ou ça casse.
Sylvain.
James Kanze
On Apr 2, 10:27 pm, Sylvain wrote:
wrote on 02/04/2007 19:35:
Bonjour, j'essaye de trouver un équivalent de la fonction strptime pour windows, mais après plusieurs heures de recherche dans les mans, je ne la trouve pas !
normal cela n'existe pas dans les CRT windows. strptime est (en gros) un habillage de scanf pour lire différents champs à stocker dans une référence unique strptime(timeStr, fmt, &tm); évitant le sscanf(timeStr, fmt, [&year,] [&mnth,] [&days,] ...);
Pas vraiment un habillage, mais selon la même philosophie, oui. Bien trop rigide pour les dates et les heures en provenence des utilisateurs (mes utilisateurs, en tout cas).
Auriez vous une idée de ce que je pourrais utiliser pour convertir un string en systime ?
aucune solution via un CRT windows classique (ie MS) qui ne fournit aucune fonction 'champ texte formatté' vers 'structure date/time'.
les MFC fournissent par contre quelque utilitaires dont la classe COleDateTime qui dispose d'une méthode ParseDateTime - c'est la plus proche de strptime, elle n'attends pas de descripteur de format mais prétends tout deviner toute seule, résultat ça passe ou ça casse.
D'après la doc, il y a quand même un paramètre qui permet de spécifier la localisation de l'utilisateur (essentiel dans l'interprétation des choses du genre 02/03/04, qui peut être le 2 mars, 2004, le 3 fév., 2004 ou le 4 mars, 2002, selon les conventions -- en supposant que ce n'est pas une date à l'époque de l'empire romaine).
D'après ce que je lis aussi, COleDateTime représente la date et l'heure dans un flottant représentant le nombre de jours -- l'heure est donc dans la partie fractionnelle. Ce qui ne me paraît pas un choix judicieux ; j'imagine qu'on pourrais construire des cas où il y une erreur dans la date, suite à des opérations. Je doute que de tels cas posent un problème pour la plupart des applications, mais le fait qu'on ne peut pas représenter une heure de façon exacte me semble genant quand même. Donc, si je définit : double const second = 1.0 / (24 * 3600) ; ajouter une seconde 86400 fois à une date à minuit ne fait pas changer la date, et donne bien un résultat différent que d'y ajouter 86400 * second dans un coup. (Au moins sur Sparc ; peut-être avec la précision étendue d'Intel, ce problème ne se manifesterait pas d'une façon aussi flagrant.)
-- James Kanze (GABI Software) email: Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
On Apr 2, 10:27 pm, Sylvain <noS...@mail.net> wrote:
actua...@gmail.com wrote on 02/04/2007 19:35:
Bonjour, j'essaye de trouver un équivalent de la fonction strptime
pour windows, mais après plusieurs heures de recherche dans les mans,
je ne la trouve pas !
normal cela n'existe pas dans les CRT windows.
strptime est (en gros) un habillage de scanf pour lire différents champs
à stocker dans une référence unique
strptime(timeStr, fmt, &tm);
évitant le
sscanf(timeStr, fmt, [&year,] [&mnth,] [&days,] ...);
Pas vraiment un habillage, mais selon la même philosophie, oui.
Bien trop rigide pour les dates et les heures en provenence des
utilisateurs (mes utilisateurs, en tout cas).
Auriez vous une idée de ce que je pourrais utiliser pour convertir un
string en systime ?
aucune solution via un CRT windows classique (ie MS) qui ne fournit
aucune fonction 'champ texte formatté' vers 'structure date/time'.
les MFC fournissent par contre quelque utilitaires dont la classe
COleDateTime qui dispose d'une méthode ParseDateTime - c'est la plus
proche de strptime, elle n'attends pas de descripteur de format mais
prétends tout deviner toute seule, résultat ça passe ou ça casse.
D'après la doc, il y a quand même un paramètre qui permet de
spécifier la localisation de l'utilisateur (essentiel dans
l'interprétation des choses du genre 02/03/04, qui peut être le
2 mars, 2004, le 3 fév., 2004 ou le 4 mars, 2002, selon les
conventions -- en supposant que ce n'est pas une date à
l'époque de l'empire romaine).
D'après ce que je lis aussi, COleDateTime représente la date et
l'heure dans un flottant représentant le nombre de jours --
l'heure est donc dans la partie fractionnelle. Ce qui ne me
paraît pas un choix judicieux ; j'imagine qu'on pourrais
construire des cas où il y une erreur dans la date, suite à des
opérations. Je doute que de tels cas posent un problème pour la
plupart des applications, mais le fait qu'on ne peut pas
représenter une heure de façon exacte me semble genant quand
même. Donc, si je définit :
double const second = 1.0 / (24 * 3600) ;
ajouter une seconde 86400 fois à une date à minuit ne fait pas
changer la date, et donne bien un résultat différent que d'y
ajouter 86400 * second dans un coup. (Au moins sur Sparc ;
peut-être avec la précision étendue d'Intel, ce problème ne se
manifesterait pas d'une façon aussi flagrant.)
--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Bonjour, j'essaye de trouver un équivalent de la fonction strptime pour windows, mais après plusieurs heures de recherche dans les mans, je ne la trouve pas !
normal cela n'existe pas dans les CRT windows. strptime est (en gros) un habillage de scanf pour lire différents champs à stocker dans une référence unique strptime(timeStr, fmt, &tm); évitant le sscanf(timeStr, fmt, [&year,] [&mnth,] [&days,] ...);
Pas vraiment un habillage, mais selon la même philosophie, oui. Bien trop rigide pour les dates et les heures en provenence des utilisateurs (mes utilisateurs, en tout cas).
Auriez vous une idée de ce que je pourrais utiliser pour convertir un string en systime ?
aucune solution via un CRT windows classique (ie MS) qui ne fournit aucune fonction 'champ texte formatté' vers 'structure date/time'.
les MFC fournissent par contre quelque utilitaires dont la classe COleDateTime qui dispose d'une méthode ParseDateTime - c'est la plus proche de strptime, elle n'attends pas de descripteur de format mais prétends tout deviner toute seule, résultat ça passe ou ça casse.
D'après la doc, il y a quand même un paramètre qui permet de spécifier la localisation de l'utilisateur (essentiel dans l'interprétation des choses du genre 02/03/04, qui peut être le 2 mars, 2004, le 3 fév., 2004 ou le 4 mars, 2002, selon les conventions -- en supposant que ce n'est pas une date à l'époque de l'empire romaine).
D'après ce que je lis aussi, COleDateTime représente la date et l'heure dans un flottant représentant le nombre de jours -- l'heure est donc dans la partie fractionnelle. Ce qui ne me paraît pas un choix judicieux ; j'imagine qu'on pourrais construire des cas où il y une erreur dans la date, suite à des opérations. Je doute que de tels cas posent un problème pour la plupart des applications, mais le fait qu'on ne peut pas représenter une heure de façon exacte me semble genant quand même. Donc, si je définit : double const second = 1.0 / (24 * 3600) ; ajouter une seconde 86400 fois à une date à minuit ne fait pas changer la date, et donne bien un résultat différent que d'y ajouter 86400 * second dans un coup. (Au moins sur Sparc ; peut-être avec la précision étendue d'Intel, ce problème ne se manifesterait pas d'une façon aussi flagrant.)
-- James Kanze (GABI Software) email: Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Sylvain
James Kanze wrote on 03/04/2007 09:36:
D'après ce que je lis aussi, COleDateTime représente la date et l'heure dans un flottant représentant le nombre de jours -- l'heure est donc dans la partie fractionnelle. Ce qui ne me
oui, le champ date/time est dans la donnée membre (publique) m_dt de type 'DATE' (== double).
paraît pas un choix judicieux ; j'imagine qu'on pourrais construire des cas où il y une erreur dans la date, suite à des opérations. Je doute que de tels cas posent un problème pour la plupart des applications, mais le fait qu'on ne peut pas représenter une heure de façon exacte me semble genant quand même.
il existe en effet des méthodes d'incrément de la heure, de l'heure, via la classe COleDateTimeSpan, au dela des erreurs d'arrondis, elles sont plutôt mal commodes et, heureusement, nullement indispensables.
pour traiter le cas décrit (transformation d'un champ texte en structure temps), on préférera:
- parser le texte: COleDateTime odt; odt.ParseDateTime(timeStr [, LOCALE_NOUSEROVERRIDE]); - convertir en SYSTEMTIME SYSTEMTIME st; odt.GetAsSystemTime(&st); - réaliser toutes opérations avec ce SYSTEMTIME ou convertir (à la main) en struct tm.
Sylvain.
James Kanze wrote on 03/04/2007 09:36:
D'après ce que je lis aussi, COleDateTime représente la date et
l'heure dans un flottant représentant le nombre de jours --
l'heure est donc dans la partie fractionnelle. Ce qui ne me
oui, le champ date/time est dans la donnée membre (publique) m_dt de
type 'DATE' (== double).
paraît pas un choix judicieux ; j'imagine qu'on pourrais
construire des cas où il y une erreur dans la date, suite à des
opérations. Je doute que de tels cas posent un problème pour la
plupart des applications, mais le fait qu'on ne peut pas
représenter une heure de façon exacte me semble genant quand
même.
il existe en effet des méthodes d'incrément de la heure, de l'heure, via
la classe COleDateTimeSpan, au dela des erreurs d'arrondis, elles sont
plutôt mal commodes et, heureusement, nullement indispensables.
pour traiter le cas décrit (transformation d'un champ texte en structure
temps), on préférera:
- parser le texte:
COleDateTime odt;
odt.ParseDateTime(timeStr [, LOCALE_NOUSEROVERRIDE]);
- convertir en SYSTEMTIME
SYSTEMTIME st;
odt.GetAsSystemTime(&st);
- réaliser toutes opérations avec ce SYSTEMTIME ou convertir (à la main)
en struct tm.
D'après ce que je lis aussi, COleDateTime représente la date et l'heure dans un flottant représentant le nombre de jours -- l'heure est donc dans la partie fractionnelle. Ce qui ne me
oui, le champ date/time est dans la donnée membre (publique) m_dt de type 'DATE' (== double).
paraît pas un choix judicieux ; j'imagine qu'on pourrais construire des cas où il y une erreur dans la date, suite à des opérations. Je doute que de tels cas posent un problème pour la plupart des applications, mais le fait qu'on ne peut pas représenter une heure de façon exacte me semble genant quand même.
il existe en effet des méthodes d'incrément de la heure, de l'heure, via la classe COleDateTimeSpan, au dela des erreurs d'arrondis, elles sont plutôt mal commodes et, heureusement, nullement indispensables.
pour traiter le cas décrit (transformation d'un champ texte en structure temps), on préférera:
- parser le texte: COleDateTime odt; odt.ParseDateTime(timeStr [, LOCALE_NOUSEROVERRIDE]); - convertir en SYSTEMTIME SYSTEMTIME st; odt.GetAsSystemTime(&st); - réaliser toutes opérations avec ce SYSTEMTIME ou convertir (à la main) en struct tm.