Heure du PC

7 réponses
Avatar
Brat'ac
Bonjour,

Mettre la machine (Windows) à l'heure à partir d'Excel je sais faire,
mais comment faire pour récupérer l'heure sur un serveur de temps
internet ?

Merci

7 réponses

Avatar
Gloops
Brat'ac a écrit, le 19/03/2012 13:54 :
Bonjour,

Mettre la machine (Windows) à l'heure à partir d'Excel je sais fair e,
mais comment faire pour récupérer l'heure sur un serveur de temps
internet ?

Merci





Bonjour,

Cette question a été posée plusieurs fois au fil des années dans le
newsgroup microsoft.public.fr.windowsxp, où il faut bien reconnaître
qu'elle est plus à sa place.

Par une recherche dans les archives tu devrais donc trouver la réponse.

https://groups.google.com/groups/search?hl=fr&as_q=synchronisation+he ure+Windows+XP
(ah, d'ailleurs, ça n'inclut pas que le newsgroup que je disais)
Au passage je viens de voir qu'il existe un newsgroup
comp.protocols.time.nntp

Je reconnais que je n'ai jamais vraiment réussi à mettre en ½uvre l adite
solution, il y avait toujours un truc qui cloche, et j'avais du mal à
savoir au juste quoi.

Je m'en suis remis à un programme extérieur. C'est un peu plus cher,
mais ça marche du premier coup (voilà qui n'entre pas dans la même
démarche que poser des questions techniques dans
comp.protocols.time.nntp, certes).

http://www.kaska.demon.co.uk/
Mais je viens de regarder, je n'ai pas pu me connecter ; j'ignore si le
problème est appelé à durer.

On trouve aussi le programme en téléchargement là :
http://www.softlookup.com/download.asp?id$255

Ce programme peut établir la synchronisation lors de la connexion à
Internet, lorsque celle-ci s'établit en cliquant sur un bouton
(j'utilisais ça quand j'étais client France Telecom).

De plus en plus de prestataires de connexion proposent la "connexion
directe", ce qui signifie que dès que le système est démarré, si le
câble ethernet est branché, on est connecté à Internet. Je ne sai s pas
si je suis plus royaliste que le roi, je me suis dit que si on est
connecté avant que le pare-feu ait eu le temps de démarrer, ça pouv ait
s'avérer dangereux. Donc, j'ai pris l'habitude de ne brancher le câbl e
ethernet qu'une fois que j'ai vérifié que le pare-feu dit être dé marré.
Le corollaire, c'est que Tardis a essayé de synchroniser l'heure dès le
démarrage du système, et comme le câble n'était pas branché, il n'a pas
pu. Si je lui dis de synchroniser toutes les deux heures, il réessaie
deux heures plus tard, mais si alors je me suis déconnecté, toujours pas
de synchronisation.

Pour pallier ce problème, j'ai écrit un programme qui vérifie, en
boucle, si il peut se connecter à Internet. Dès qu'il y arrive, il
affiche un formulaire, qui arrête le service Tardis, le redémarre, et
affiche le compte-rendu pour qu'on puisse s'assurer que tout va bien. Je
m'en sers depuis quelques années sous Windows XP et tout baigne.

Je n'ai pas encore mis ce programme en ligne, si il y a besoin me faire
signe -tant qu'à faire, tester Tardis avant (je pense que tu devines qu e
"invalid" ne fait pas partie de mon adresse). Comme il n'est pas en
ligne je n'ai pas encore avisé Tardis, non plus. Je ferai ça quand
j'aurai de la place libre sur mon site et du temps pour m'en occuper (en
imaginant que le problème de connexion chez eux soit passager).
Avatar
Brat'ac
Le 19/03/2012, Gloops a supposé :

Merci pour cette longue réponse.

Finalement je vais faire comme cela. (Hors Excel)

J'ai téléchargé le PGM "Neutron" ici
http://www.freewarefrance.com/show_subcategory_0_3_25.html

Je le configure pour un démarrage auto avec la session et un arrêt auto
après synchro.
Ensuite je modifie le registre pour que l'horloge se configure sur le
serveur de temps internet toute les heures à la place d'une fois par
semaine.
Bonne journée
Avatar
Gloops
Brat'ac a écrit, le 19/03/2012 16:32 :
J'ai téléchargé le PGM "Neutron" ici
http://www.freewarefrance.com/show_subcategory_0_3_25.html

Je le configure pour un démarrage auto avec la session et un arrêt auto
après synchro.
Ensuite je modifie le registre pour que l'horloge se configure sur le
serveur de temps internet toute les heures à la place d'une fois par
semaine.



ça marche ? Ah ben tant mieux.
Tu n'as pas une "connexion directe", alors ?
ça simplifie la question.

Bonne journée



Bonne journée aussi.
Avatar
MichD
Bonjour,

Tu peux essayer ceci :

'--------------------------------------------------
Sub test()
Dim Arr(), Heure As Date, LaDate As Variant, S As Variant
Dim Mois As Variant, Jour As Integer, Annee As Integer

Arr = Array("January", "February", "March", "April", "Mai", _
"June", "July", "September", "October", "November", "December")

GetOfficialUSTime LaDate, Heure
If LaDate <> "" Then
S = Split(LaDate, ",")
Mois = S(1)
Jour = Right(S(1), 2)
Mois = Application.Match(Trim(Replace(Mois, Jour, "")), Arr, 0)
Annee = (S(2))
LaDate = Format(DateSerial(Annee, Mois, Jour), "DD/MM/YYYY")
End If
MsgBox LaDate & ", " & Heure
End Sub

'--------------------------------------------------
Function GetOfficialUSTime(LaDate As Variant, Heure As Date) As Boolean

On Error GoTo ErrHandler

Dim RetVal As Variant
Dim MyURL As String
Dim tim As String
Dim dat As String
Dim timStart As Integer
Dim datStart As Integer
Dim datEnd As Integer
Dim oHttpTest As Object

Set oHttpTest = CreateObject("Microsoft.XMLHTTP")
MyURL = "http://www.time.gov/timezone.cgi?Central/d/-6"
oHttpTest.Open "POST", MyURL, False
oHttpTest.Send

If CLng(oHttpTest.Status) < 300 Then 'Response is OK
datStart = InStr(oHttpTest.responseText, "<td align=" & Chr(34) & _
"center" & Chr(34) & "><font size=" & Chr(34) & "7" & Chr(34) & " color=" & _
Chr(34) & "white" & Chr(34) & "><b>") + 116
datEnd = InStr(datStart, oHttpTest.responseText, "<br>")
timStart = InStr(oHttpTest.responseText, "<td align=" & Chr(34) & _
"center" & Chr(34) & "><font size=" & Chr(34) & "7" & Chr(34) & " color=" & _
Chr(34) & "white" & Chr(34) & "><b>") + 51

tim = Mid(oHttpTest.responseText, timStart, 8)
dat = Mid(oHttpTest.responseText, datStart, datEnd - datStart)
Heure = tim
LaDate = dat
Else
RetVal = MsgBox("Status Code: " & oHttpTest.Status & vbCrLf & _
"Status Text: " & oHttpTest.statusText & vbCrLf & vbCrLf & _
"Unexpected Response From Server" & vbCrLf & vbCrLf & _
"Press 'OK' To See Full Response in Web Browser", _
vbExclamation + vbOKCancel, "Unexpected Server Error")
If RetVal = vbOK Then
If Dir("C:HTTP_ERR.HTM") <> "" Then Kill "C:HTTP_ERR.HTM"
Open "C:HTTP_ERR.HTM" For Output As #1
Print #1, oHttpTest.responseText
Close #1
Application.FollowHyperlink "C:HTTP_ERR.HTM"
End If
End If
Egress:
Set oHttpTest = Nothing
Exit Function

ErrHandler:
MsgBox Err.Description
Resume Egress
End Function
'--------------------------------------------------



MichD
------------------------------------------
"Brat'ac" a écrit dans le message de groupe de discussion :

Bonjour,

Mettre la machine (Windows) à l'heure à partir d'Excel je sais faire,
mais comment faire pour récupérer l'heure sur un serveur de temps
internet ?

Merci
Avatar
Brat'ac
MichD avait écrit le 19/03/2012 :
Bonjour,

Tu peux essayer ceci :



Bonjour,
Réponse tardive pour cause d'absence.

Cela fonctionne parfaitement merci bien.

Par contre je n'ai pas réussi à configurer l'heure UTC + 1
comme ceci ça fonctionne "http://nist.time.gov/timezone.cgi?UTC/s/0"

J'ai rien trouvé sur le site qui explique ( peut être mal cherché),
mais bon c'est pas grave je corrige dans la fonction.

Autrement j'avais trouvé une parade.

Sur le site de ma commune j'ai fait une page "Heure.php" comme ceci
------------------------------------
<?php
$date = date("d-m-Y");
$heure = date("H:i");
echo $heure ,"n",$date;
?>
----------------------------------

Et dans Excel je viens récupérer la date et l'heure dans deux cellules
par une requête sur la page à partir du Web.

Bonne fin de soirée
GS
Avatar
Brat'ac
Après mûre réflexion, MichD a écrit :
Je n'ai pas compris la finalité de ce que tu cherches...



Je cherche à être sur que la machine est bien à la bonne heure et date

c'est pour saisir des entrées sorties d'une garderie périscolaire en
vue de facturation par transmission par mail d'un fichier csv des temps
de présences à un logiciel de collectivité local.

C'est bon maintenant ça fonctionne.

Merci encore de l'aide.
GS
Avatar
MichD
Je n'ai pas compris la finalité de ce que tu cherches...

Une adresse à consulter pour les conversions d'heures...
http://www.tushar-mehta.com/excel/timezone.htm


Pour afficher l'heure locale et l'heure GMT, il y a ceci :
'-----------------------------
Declare Sub GetLocalTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
Declare Sub GetSystemTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
'KPD-Team 1998
'URL: http://www.allapi.net/
'
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
'-----------------------------
Function GMT_Time()
Application.Volatile
Dim SysTime As SYSTEMTIME
GetSystemTime SysTime
GMT_Time = TimeSerial(SysTime.wHour, SysTime.wMinute, SysTime.wSecond)
End Function
'-----------------------------
Function Local_Time()
Dim MyTime As SYSTEMTIME
GetLocalTime MyTime
Local_Time = TimeSerial(MyTime.wHour, MyTime.wMinute, MyTime.wSecond)
End Function
'-----------------------------
Sub test()
rep = MsgBox("heure locale : " & Chr(9) & Local_Time _
& Chr(10) & "heure GMT : " & Chr(9) & GMT_Time, vbInformation, "Selon réglages Windows")
End Sub
'-----------------------------



MichD
------------------------------------------
"Brat'ac" a écrit dans le message de groupe de discussion :

MichD avait écrit le 19/03/2012 :
Bonjour,

Tu peux essayer ceci :



Bonjour,
Réponse tardive pour cause d'absence.

Cela fonctionne parfaitement merci bien.

Par contre je n'ai pas réussi à configurer l'heure UTC + 1
comme ceci ça fonctionne "http://nist.time.gov/timezone.cgi?UTC/s/0"

J'ai rien trouvé sur le site qui explique ( peut être mal cherché),
mais bon c'est pas grave je corrige dans la fonction.

Autrement j'avais trouvé une parade.

Sur le site de ma commune j'ai fait une page "Heure.php" comme ceci
------------------------------------
<?php
$date = date("d-m-Y");
$heure = date("H:i");
echo $heure ,"n",$date;
?>
----------------------------------

Et dans Excel je viens récupérer la date et l'heure dans deux cellules
par une requête sur la page à partir du Web.

Bonne fin de soirée
GS