VB: Récupérer l'heure sur un serveur de temps.

Résolu/Fermé
Anonyme209 Messages postés 678 Date d'inscription samedi 6 octobre 2012 Statut Membre Dernière intervention 22 décembre 2020 - Modifié par Anonyme209 le 4/07/2014 à 13:20
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 9 juil. 2014 à 15:50
Bonjour,

Je programme en Visual Basic 2010.
J'aimerais pouvoir synchroniser l'heure du système avec l'heure d'un serveur de temps web. Pour modifier l'heure du système, j'ai trouvé "TimeString = "hh:mm:ss"", mais ne marche que en mode admin. Et je ne sais pas comment récupérer l'heure d'un serveur web.

Merci de votre aide.
A voir également:

12 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
6 juil. 2014 à 14:52
0
Anonyme209 Messages postés 678 Date d'inscription samedi 6 octobre 2012 Statut Membre Dernière intervention 22 décembre 2020 15
Modifié par Anonyme209 le 6/07/2014 à 15:50
Merci, je vais me servir du code du projet et l'adapter pour mon programme.

Si ce n'est pas trop demandé, il y a encore trois autres points qui pourraient m'être utiles:

- Récupérer la date sur Internet (je devrais pouvoir me débrouiller tout seul)
- Détecter automatiquement si on est en heure d'été ou en heure d'hiver.
- Modifier l'heure système sans démarrer en mode admin (je ne pense pas que ça soit possible, mais je demande quand-même)
Merci de votre aide
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
6 juil. 2014 à 16:34
Pour le 1er point il faut changer l'adresse:

adress = "https://ntp.alapetite.fr/date.txt.php"

et ensuite dans Private Sub Timer1_Tick:

 Dim s As String = texte
   'manipulation des chaines de caractères    
        Dim separateur As Char = CChar("T")
        Dim nom() As String
        nom = s.Split(separateur)
        lbldate.Text = nom(0)



pour le 2ème point chercher dans la manipulation des chaines de caractères pour trouver le 2

Le 3ème point je ne sais pas, il faudra faire un nouveau post.

Bonne programmation

0
Anonyme209 Messages postés 678 Date d'inscription samedi 6 octobre 2012 Statut Membre Dernière intervention 22 décembre 2020 15
6 juil. 2014 à 16:38
Bonjour,

Merci de votre aide.

Je sais que de modifier le 2 par 1 dans l'adresse permet d'afficher au choix l'heure d'été et l'heure d'hiver.
Ce que je voudrais, c'est détecter automatiquement s'il faut mettre un 2 ou un 1.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
6 juil. 2014 à 17:00
Il faut regarder sur le calendrier le passage de l'heure d'été à l'heure d'hiver et inversement et avec la date que vous récupérez dans le lbldate.Text il suffit de faire un If
Le changement est le 26-10-2014 donc :

 If  lbldate.Text = 26/10/2014 Then'il faudra voir le format Date et corriger si besoin
  adress = "http://www.Heure.com/heure-fr.php?timezone=1&size=36"
End If


Voilà c'est pas plus compliqué que cela

0
Anonyme209 Messages postés 678 Date d'inscription samedi 6 octobre 2012 Statut Membre Dernière intervention 22 décembre 2020 15
6 juil. 2014 à 17:58
Bonjour,

Merci pour la réponse, mais il y a juste un problème:

Ca ne marche que pour le passage à l'heure d'hiver de 2014.
J'aimerais que ça marche pour tout le temps.
(Par exemple, regarder sur le calendrier le passage heure été à heure hiver directement en vb)
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
6 juil. 2014 à 18:08
Pour cela il faut voir avec les numéros de semaine, je pense que c'est toujours les mêmes semaines: dernier dimanche de mars (14) et d'octobre(44). Donc faire une recherche pour rechercher le numéro de la semaine que l'on mettra dans une variable (masemaine) qui s'inscrira à l'ouverture de l'application. Ensuite il suffit à l'ouverture de faire :

Si masemaine = 14 alors
on change d'heure
fin si

Je te laisse le soin de faire une recherche sur Google pour trouver en VB.NET le numéro de la semaine courante
Cela changera le lundi après on peut affiner avec les dates. A toi de voir
0
Anonyme209 Messages postés 678 Date d'inscription samedi 6 octobre 2012 Statut Membre Dernière intervention 22 décembre 2020 15
6 juil. 2014 à 18:10
Merci beaucoup,
je devrais pouvoir me débrouiller avec ça.
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
8 juil. 2014 à 14:38
J'ai trouvé une source en VB6 pour trouver les jours des changements d'heure . Je l'ai adapter en VB.Net si cela t'interesse tu pourras l'integrer à ton programme.

Dans un Form mettre un Button et 2 Label, voici le code avec le lien de la source en VB6:

Option Strict On
Public Class Form1
    'http://codes-sources.commentcamarche.net/source/24735-calcul-du-decalage-heure-ete-hiver-en-fonction-d-une-date
    Dim seuilete As Date
    Dim seuilhiver As Date
    Dim dteData As Date
    Dim iddate As String
    Dim jour As Integer
    Dim uneDateC As Decimal 'nombre jour depuis début année
    Dim seuileteC As Decimal 'jour debut année heure ete
    Dim seuilhiverC As Decimal 'jour debut année heure d'hiver 
    Dim DateS As String
    Dim DateD As DateTime
    Dim Annee As String
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'mis à jour des dates
        dteData = Now 'today
        Annee = (dteData.ToString("yyyy")) 'année en cours
        'uneDate = CDate(TextBox1.Text)
        iddate = "25/03/" & Annee & " 02:00:00"
        'on est le 25 mars de la même année
        seuilete = CDate(iddate)
        jour = Weekday(seuilete, vbMonday)
        'combien de jours avant d'atteindre le prochain dimanche?
        iddate = (32 - jour) & "/03/" & Annee & " 02:00:00"
        seuilete = CDate(iddate)
        Label1.Text = "heure d'ete: " & Format(seuilete, "dddd d MMM yyyy")
        '----------------------------------------------------------------------
        'idem mais pour l'heure d'hiver
        'on est le 25 Octobre de la même année
        iddate = "25/10/" & Annee & " 02:00:00"
        seuilhiver = CDate(iddate)
        jour = Weekday(seuilhiver, vbMonday)
        'combien de jours avant d'atteindre le prochain dimanche?
        iddate = (32 - jour) & "/10/" & Annee & " 02:00:00"
        seuilhiver = CDate(iddate)
        Label2.Text = "heure d'hiver: " & Format(seuilhiver, "dddd d MMM yyyy")
        '--------------------------------------------------------------------
        'une petite comparaison
        DateS = ("01/01/" & Annee) 'Saisir une date : on récupère une string
        DateD = CDate(DateS) 'Conversion de la string en DateTime
        uneDateC = DateDiff(DateInterval.Day, DateD, Now)
        MsgBox("Aujourd'hui " & uneDateC & " jours depuis le début de l'année")
        seuileteC = DateDiff(DateInterval.Day, DateD, seuilete) 'différence en jours à partir debut d'année a l'heure d'été
        MsgBox("L'heure d'été est à " & seuileteC & " jours depuis le début de l'année")
        seuilhiverC = DateDiff(DateInterval.Day, DateD, seuilhiver) 'différence en jours  heure d'hiver à la fin de l'année
        MsgBox("L'heure d'hiver est à " & seuilhiverC & " jours depuis le début de l'année")
        If (seuileteC < uneDateC) And (uneDateC < seuilhiverC) Then
            MsgBox("Nous sommes en heure été")
        Else
            MsgBox("Nous sommes en heure hiver")
        End If
    End Sub
End Class


Bonne programmation
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
8 juil. 2014 à 17:35
0
Anonyme209 Messages postés 678 Date d'inscription samedi 6 octobre 2012 Statut Membre Dernière intervention 22 décembre 2020 15
8 juil. 2014 à 20:11
Merci, ton code est très utile
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
9 juil. 2014 à 15:50
Tu m'as donné l'idée de faire un logiciel d'évaluation à durée limitée basé sur la date du web. Si cela t'intéresse:

https://codes-sources.commentcamarche.net/source/100652-logiciel-d-evaluation-a-duree-determinee


Cordialement
0