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

C Discussion :

Trouver le décalage horaire à partir date epoch


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2008
    Messages
    384
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 384
    Par défaut Trouver le décalage horaire à partir date epoch
    Bonjour,

    Je réalise un programme en C afin de gérer des événements dans le temps, pour cela j'utilise le format 'epoch' ( nb de secondes écoulées depuis 1970 )

    Mon problème est le suivant, le temps epoch est basé sur une heure GMT.
    Je cherche une fonction, qui part d'une date dans le futur au format epoch et cette fonction me retournerai le décalage horaire qui sera appliqué à cette date ( a savoir +1 ou +2 )

    J'ai trouvé une sorte de fonction en Javascript appelée 'getTimezoneOffset' , je voudrai savoir si un équivalent existe en C.

    Je vous remercie de votre aide,

  2. #2
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    En C tu joues tout simplement avec les fonctions gmtime et localtime. La différence localtime - gmtime donne le décalage horaire.

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2008
    Messages
    384
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 384
    Par défaut
    J'ai oublié de préciser : c'est programme en C embarqué donc je dispose d'une librairie time.c mais celle ci est réduite et ne dispose pas de gmtime et localtime

    Pourriez vous m'indiquer ou je peux trouver les sources de 2 fonctions, ke les ajouterai à ma librairie actuelle.

    Je vous remercie,

  4. #4
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Le décalage horaire est une information entrée manuellement par l'utilisateur à la première utilisation du système. Le système sauvegarde ensuite cette information mais il est bien sûr possible de la modifier à tout moment. Donc sur une plateforme embarquée sans OS qui gère l'heure, c'est toi qui définis le décalage horaire. Cela étant fait, il ne te reste plus qu'à implémenter gmtime puis utiliser gmtime pour implémenter localtime, ou l'inverse, ça revient au même. Enfin, je comprends que tu n'aies pas envie de les implémenter toi-même, mais les sources de la libc sont légion sur internet. En voici une : MinGW > Lib C > time. Parcours conseillé : gmtime, localtime, localtime_r.

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    D'une part dans la rubrique Sources C j'ai mis (il y a longtemps) une fonction MkTimeFromGMT (la seule fonction ne figurant pas dans la bibliothèques standard, je ne sais pas pourquoi : mktime marche seulement avec un temps local)

    D'autre part, si tu es sous sytèmes unixoides (je ne sais pas si ça existe sous Windows), il y a encore plus simple (et dont je me sers dans cette fonction) il y a une variable d'environnement TZ..

    http://www.gnu.org/s/hello/manual/libc/TZ-Variable.html

    Regarde le code de la fonction, c'est indiqué :

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    char *TZ = getenv("TZ");

  6. #6
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Citation Envoyé par souviron34
    D'autre part, si tu es sous sytèmes unixoides (je ne sais pas si ça existe sous Windows), il y a encore plus simple (et dont je me sers dans cette fonction) il y a une variable d'environnement TZ..
    1. Tout aussi simple mais plus portable en plus : tzset (<time.h>, POSIX) qui est disponible dans les deux systèmes, mais personnellement, je préfère rester 100% portable tant que cela est possible, au prix d'un code légèrement plus complexe.

    2. lcoulon n'est ni sous un unixoïde standard ni sous un windows, il a précisé qu'il est sur une plateforme embarquée où il ne dispose même pas de gmtime et de localtime. Ca m'étonnerait que la variable d'environnement TZ serait définie dans une telle plateforme, ni même qu'un quelconque OS y existe.

Discussions similaires

  1. [Dates] GMT et décalage horaire
    Par max44410 dans le forum Langage
    Réponses: 1
    Dernier message: 22/05/2007, 09h59
  2. [Dates] Date() et décalage horaire ?
    Par Kenshin86 dans le forum Langage
    Réponses: 10
    Dernier message: 17/04/2007, 19h07
  3. Date et décalage horaire
    Par rlnd23 dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 06/10/2006, 15h18
  4. [vbexcel]trouver le jour a partir d'une date.
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/12/2005, 16h07
  5. [D7] trouver un jour a partir d'une semaine et date
    Par raoulmania dans le forum Langage
    Réponses: 4
    Dernier message: 01/12/2005, 11h43

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