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 : 45
    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
    Forums VB : lire la notice
    La touche existe pour être utilisée
    Pensez au tag
    Pour ceux n'ayant pas l'aide installée :
    - Aide MSDN pour VB6
    - Aide MSDN pour VBA
    Je ne réponds pas aux questions techniques par MP. Merci d'utiliser le forum fait pour çà.

  2. #2
    Membre éclairé
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 45
    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.

    Forums VB : lire la notice
    La touche existe pour être utilisée
    Pensez au tag
    Pour ceux n'ayant pas l'aide installée :
    - Aide MSDN pour VB6
    - Aide MSDN pour VBA
    Je ne réponds pas aux questions techniques par MP. Merci d'utiliser le forum fait pour çà.

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

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 332
    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.

    @+
    Xavier

  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 327
    Points
    24 327
    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.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/10/2009, 09h46
  2. Récupération de donnée serveur local et distant
    Par sebaaas dans le forum Langage
    Réponses: 1
    Dernier message: 04/12/2007, 23h51
  3. Réponses: 10
    Dernier message: 27/07/2007, 11h25
  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, 13h58
  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, 22h30

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