IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

probleme de date avec mktime et gmtime


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Par défaut probleme de date avec mktime et gmtime
    Bonjour,

    j'ai des petits soucis à utiliser ces fonctions, voici ma demarche :

    je definis une date (pour les tests)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CString tmp;
    tmp = "20070605160939";
     
    struct tm tmSynchro;
    FillMemory(&tmSynchro, sizeof(tmSynchro), 0);
    tmSynchro.tm_year = atoi(tmp.Left(4)) - 1900;
    tmSynchro.tm_mon = atoi(tmp.Mid(4,2)) - 1;
    tmSynchro.tm_mday = atoi(tmp.Mid(6,2)) - 1;
    tmSynchro.tm_hour = atoi(tmp.Mid(8,2));
    tmSynchro.tm_min = atoi(tmp.Mid(10,2));
    tmSynchro.tm_sec = atoi(tmp.Right(2));
    Dans ma structure tmSynchro, j'ai les bonnes valeurs, je poursuis avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    time_t timeSynchro  = mktime(&tmSynchro);
    et la, bizzarement, tmSynchro.tm_hour passe à 17 alors qu'il etait a 16

    je continue avec ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    time_t value = (time_t) this->timeSynchro;
    struct tm *newtime = gmtime(&value);
    et la, tout aussi bizzarement, tm.tm_hour passe à 15

    Que se passe t'il ? comment faire que tm_hour reste a 16 tout le temps ?

    Merci

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 650
    Par défaut
    bon, ben j'ai finalement trouvé.

    pour ceux que ca pourrait interresser, j'ai remplacé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    time_t value = (time_t) this->timeSynchro + _timezone;
    struct tm *newtime = localtime(&value);
    gmtime par localtime et ajout de _timezone qui contient le decallage GMT

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour à tous,

    J'ai le même problème avec mktime, est-ce que quelqu'un aurait une explication et/ou une solution ? Je trouve incroyable qu'une fonction standard modifie son paramètre ainsi sans raison et sans que ce soit dans le man...

    firejoker, je ne suis pas sûr de comprendre ce qu'il se passe avec gmtime. tmSynchro est modifié alors que tu passes value (donc une autre variable) à gmtime ?

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [BO XIR2][DeskI] Probleme de date avec bo
    Par coolmek dans le forum Deski
    Réponses: 4
    Dernier message: 10/04/2008, 14h53
  2. Acces probleme de Date avec Between
    Par kahya dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 03/05/2007, 16h26
  3. Probleme insertion date avec un champ datetime
    Par locs dans le forum MS SQL Server
    Réponses: 24
    Dernier message: 24/09/2006, 12h19
  4. Probleme de date avec mysql: pas de date par defaut stp!
    Par kenny49 dans le forum Requêtes
    Réponses: 4
    Dernier message: 01/07/2006, 11h25
  5. Probleme de date avec changement d'année
    Par GrisburT dans le forum Oracle
    Réponses: 11
    Dernier message: 30/11/2004, 16h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo