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

Vos contributions VB6 Discussion :

Récupération du fuseau défini localement [Sources]


Sujet :

Vos contributions VB6

  1. #1
    Membre éclairé
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 618
    Points : 739
    Points
    739
    Par défaut Récupération du fuseau défini localement
    Bonjour,

    Je propose le code suivant dans le cadre de la réponse au message suivant :http://www.developpez.net/forums/sho....php?p=1107422

    Cela peut peut-être correspondre à une entrée au niveau de la FAQ :

    Q : Comment récupérer le fuseau défini dans Windows ?

    R :

    L'identification du fuseau se récupère avec la fonction GetTimeZoneInformation() de l'API Windows.

    La fonction et les types qui lui sont associés sont définis dans la partie générale d'un module comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Private Declare Function GetTimeZoneInformation Lib "kernel32" _
                    (lpTimeZoneInformation As TIME_ZONE_INFORMATION) As Long
     
    Private Type SYSTEMTIME
            wYear As Integer
            wMonth As Integer
            wDayOfWeek As Integer
            wDay As Integer
            wHour As Integer
            wMinute As Integer
            wSecond As Integer
            wMilliseconds As Integer
    End Type
     
    Private Type TIME_ZONE_INFORMATION
            Bias As Long
            StandardName(32) As Integer
            StandardDate As SYSTEMTIME
            StandardBias As Long
            DaylightName(32) As Integer
            DaylightDate As SYSTEMTIME
            DaylightBias As Long
    End Type
    La fonction permettant de récupérer la définition du fuseau horaire (en France "+1") est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Function RecupFuseauTexte() As String
    'Fonction de renvoi de la dénommination horaire du fuseau actuellement défini
     
    Dim tmz As TIME_ZONE_INFORMATION
     
        'Récupération des données horaires
        GetTimeZoneInformation tmz
     
        'Affichage du fuseau
        'Bias calculé comme ceci (en minutes)
        'GMT = Heure locale + Bias
        If tmz.Bias >= 0 Then
            'Données renvoyée de type "-3"
            RecupFuseauTexte = CStr(-tmz.Bias / 60)
        Else
            'Données renvoyée de type "+1" (France)
            RecupFuseauTexte = "+" & CStr(-tmz.Bias / 60)
        End If
     
    End Function
    L'appel se fait alors de manière transparentepar exemple grâce à une MsgBox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox RecupFuseauTexte
    Je suis ouvert à toute remarque ou suggestion d'évolution.

    Bonne fin de journée

    Théo

  2. #2
    Membre éclairé
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 618
    Points : 739
    Points
    739
    Par défaut
    Bon apparemment après un mois de mise en place de ce code, il semble qu'il ne suscite pas un grand intérêt.


  3. #3
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 336
    Points : 718
    Points
    718
    Par défaut
    je dirais la même chose qu'Alain:
    http://www.developpez.net/forums/sho...d.php?t=185576

    ce n'est pas parce que personne ne dit rien que c'est mauvais. Au contraire... Ne t'en fait pas.

    @+

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 333
    Points
    24 333
    Par défaut
    Je crois aussi que, si on ne dit rien, c'est peut-être qu'il n'y a rien à (re)dire.

    Je vais toutefois y faire un petit commentaire:
    Il existe un moyen d'outrepasser le fuseau horaire de Windows par une variable d'environnement: TZ

    Je l'ai appris en me cassant les dents sur le problème d'un client d'un logiciel banquaire. Il avait cette variable qui avait été positionnée par une application développée par un programmeur peu scrupuleux.

    Impossible à détecter dans Windows.

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/10/2009, 10h46
  2. Récupération de donnée serveur local et distant
    Par sebaaas dans le forum Langage
    Réponses: 1
    Dernier message: 05/12/2007, 00h51
  3. Réponses: 10
    Dernier message: 27/07/2007, 12h25
  4. [Débutant] récupération d'une variable local pour l'envoyer a un popup
    Par minogttao dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 25/11/2006, 14h58
  5. [C#] Sockets, récupération de l'adresse IP locale
    Par dockurt2k dans le forum Windows Forms
    Réponses: 2
    Dernier message: 29/09/2006, 23h30

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