heure GMT

Le
Jacky
Bonjour,
Dans un soucis de comparaison de la date système et la date GMT, j'utilise ce code qui fonctionne bien, mais
je voudrais me passer de la ligne
'
'Cette ligne transforme la date "08 Feb 2014 hh:mm:ss" en "08/02/2014 hh:mm:ss"
Feuil2.[aa1] = GMT_Time: GMT_Time = Feuil2.[aa1]: Feuil2.[aa1] = ""
'
La date "GMT_Time" retournée par "greenwichmeantime.com"
est sous forme "Sat, 08 Feb 2014 hh:mm:ss GMT"
Comment l'interpréter directement en vba sans passer par une cellule ??

'-- Partie du code concernée --
Const GMTTime As String = "http://wwp.greenwichmeantime.com/time/scripts/clock-8/runner.php?tz=gmt"
Set http = CreateObject("Microsoft.XMLHTTP")
http.Open "GET", GMTTime & Date, False, "", ""
http.Send
GMT_Time = http.getResponseHeader("Date")
GMT_Time = Mid$(GMT_Time, 6, Len(GMT_Time) - 9)
Feuil2.[aa1] = GMT_Time: GMT_Time = Feuil2.[aa1]: Feuil2.[aa1] = "" '***************
Hete = DateSerial(Year(GMT_Time), 4, 1) - Weekday(DateSerial(Year(GMT_Time), 3, 31))
Hhiver = DateSerial(Year(GMT_Time), 11, 1) - Weekday(DateSerial(Year(GMT_Time), 10, 31))
Decalage = (GMT_Time >= Hete) * (GMT_Time < Hhiver) + 1 'renvoie 2 si été, 1 si hiver
NouvelleDate = DateAdd("h", Decalage, GMT_Time) 'ajoute 1 ou 2 heures selon été-hiver
'-
--
Salutations
JJ
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacquouille
Le #25979052
Salut Jacky

Cela, c'est un truc pour Modeste, du fuseau horaire de Lille.
Il aime ces formats et ces problèmes d'heures.
Quant à moi, c'est l'heure des crêpes normandes -)

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Jacky" a écrit dans le message de groupe de discussion :
ld5ama$jae$

Bonjour,
Dans un soucis de comparaison de la date système et la date GMT, j'utilise
ce code qui fonctionne bien, mais
je voudrais me passer de la ligne
'---------
'Cette ligne transforme la date "08 Feb 2014 hh:mm:ss" en "08/02/2014
hh:mm:ss"
Feuil2.[aa1] = GMT_Time: GMT_Time = Feuil2.[aa1]: Feuil2.[aa1] = ""
'---------
La date "GMT_Time" retournée par "greenwichmeantime.com"
est sous forme "Sat, 08 Feb 2014 hh:mm:ss GMT"
Comment l'interpréter directement en vba sans passer par une cellule ??

'-------------- Partie du code concernée -----------
Const GMTTime As String =
"http://wwp.greenwichmeantime.com/time/scripts/clock-8/runner.php?tz=gmt"
Set http = CreateObject("Microsoft.XMLHTTP")
http.Open "GET", GMTTime & Date, False, "", ""
http.Send
GMT_Time = http.getResponseHeader("Date")
GMT_Time = Mid$(GMT_Time, 6, Len(GMT_Time) - 9)
Feuil2.[aa1] = GMT_Time: GMT_Time = Feuil2.[aa1]: Feuil2.[aa1] = ""
'***************
Hete = DateSerial(Year(GMT_Time), 4, 1) - Weekday(DateSerial(Year(GMT_Time),
3, 31))
Hhiver = DateSerial(Year(GMT_Time), 11, 1) -
Weekday(DateSerial(Year(GMT_Time), 10, 31))
Decalage = (GMT_Time >= Hete) * (GMT_Time < Hhiver) + 1 'renvoie 2 si
été, 1 si hiver
NouvelleDate = DateAdd("h", Decalage, GMT_Time) 'ajoute 1 ou 2 heures
selon été-hiver
'-------------------
--
Salutations
JJ
MichD
Le #25979602
Bonjour,

'Déclaration API dans le haut du module standard :
Private Declare Sub GetLocalTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
Private Declare Sub GetSystemTime Lib "kernel32" (lpSystemTime As
SYSTEMTIME)
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

Function HeureGMT(Rg As String)
Dim c As Date
On Error Resume Next
If IsDate(CDate(Rg)) Then
c = TimeValue(Hour(Rg) & ":" & Minute(Rg) & ":" & Second(Rg))
If c * 1 = 0 Or Err <> 0 Then MichTime = "": Exit Function
End If
HeureGMT = GMT_Time - Local_Time + c
End Function
'-------------------------------------

'---------------------
Sub Exemple()
MsgBox HeureGMT("16:39:45")
End Sub
'---------------------
Jacky
Le #25980382
Re...
Pour mon problème du moment, je pense avoir trouvé une solution (un peu tarabiscotée mais bon...) sans passer
par une cellule.
'------------------
Const GMTTime As String = "http://wwp.greenwichmeantime.com/time/scripts/clock-8/runner.php?tz=gmt"
Set http = CreateObject("Microsoft.XMLHTTP")
http.Open "GET", GMTTime & Date, False, "", ""
http.Send
GMT_Time = http.getResponseHeader("Date")
GMT_Time = Mid$(GMT_Time, 6, Len(GMT_Time) - 9)
GMT_Time = DateSerial(Mid(GMT_Time, 8, 4), Application.Match(Mid(GMT_Time, 4, 3), [{"Jan", "Feb", "Mar",
"Apr", "May", "Jun", "Aug", "Sep","Oct","Nov","Dec"}], 0), Left(GMT_Time, 2))
MsgBox GMT_Time
'-----------------
--
Salutations
JJ


"MichD"
Bonjour,

'Déclaration API dans le haut du module standard :
Private Declare Sub GetLocalTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
Private Declare Sub GetSystemTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
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

Function HeureGMT(Rg As String)
Dim c As Date
On Error Resume Next
If IsDate(CDate(Rg)) Then
c = TimeValue(Hour(Rg) & ":" & Minute(Rg) & ":" & Second(Rg))
If c * 1 = 0 Or Err <> 0 Then MichTime = "": Exit Function
End If
HeureGMT = GMT_Time - Local_Time + c
End Function
'-------------------------------------

'---------------------
Sub Exemple()
MsgBox HeureGMT("16:39:45")
End Sub
'---------------------

Jacky
Le #25980372
Désolé pour le changement de date et d'heure.
A force de tester :-))

--
Salutations
JJ


"Jacky"
Bonjour Denis

Sauf erreur et si j'ai bien compris, ce principe est basé sur l'heure système du pc et nécessite que Windows
soit a l'heure et que le fuseau horaire soit correct.
Or mon soucis est de pouvoir vérifié cela.
W32time de Windows qui doit synchroniser le service de temps est souvent en rade pour l'utilisateur de ce
classeur.

PS: MichTime = "": un reste de fonctionnement perso ????


--
Salutations
JJ


"MichD"
Bonjour,

'Déclaration API dans le haut du module standard :
Private Declare Sub GetLocalTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
Private Declare Sub GetSystemTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
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

Function HeureGMT(Rg As String)
Dim c As Date
On Error Resume Next
If IsDate(CDate(Rg)) Then
c = TimeValue(Hour(Rg) & ":" & Minute(Rg) & ":" & Second(Rg))
If c * 1 = 0 Or Err <> 0 Then MichTime = "": Exit Function
End If
HeureGMT = GMT_Time - Local_Time + c
End Function
'-------------------------------------

'---------------------
Sub Exemple()
MsgBox HeureGMT("16:39:45")
End Sub
'---------------------





MichD
Le #25980762
Ta langue maternelle est le français?

Ta question était : "un soucis de comparaison de la date système et la date
GMT"
Jacky
Le #25980832
Je ne vois pas la correspondance avec ma langue maternelle....sauf pour le "s" de "souci"
J'ai pourtant précisé que je récupère "gmt_time" par:
'------------
Const GMTTime As String = "http://wwp.greenwichmeantime.com/time/scripts/clock-8/runner.php?tz=gmt"
Set http = CreateObject("Microsoft.XMLHTTP")
http.Open "GET", GMTTime & Date, False, "", ""
http.Send
GMT_Time = http.getResponseHeader("Date")
'-------------
--
Salutations
JJ


"MichD"
Ta langue maternelle est le français?

Ta question était : "un soucis de comparaison de la date système et la date GMT"


Péhemme
Le #25981532
Pour la synchronisation du temps, je ne connais qu'*un* seul service :
ntp.sophia.cnrs.fr
Bonne fin de dimanche
Michel


"Jacky" a écrit dans le message de groupe de discussion :
52f749b3$0$2925$

Bonjour Denis

Sauf erreur et si j'ai bien compris, ce principe est basé sur l'heure
système du pc et nécessite que Windows
soit a l'heure et que le fuseau horaire soit correct.
Or mon soucis est de pouvoir vérifié cela.
W32time de Windows qui doit synchroniser le service de temps est souvent en
rade pour l'utilisateur de ce
classeur.

PS: MichTime = "": un reste de fonctionnement perso ????


--
Salutations
JJ


"MichD" ld6929$5ll$
Bonjour,

'Déclaration API dans le haut du module standard :
Private Declare Sub GetLocalTime Lib "kernel32" (lpSystemTime As
SYSTEMTIME)
Private Declare Sub GetSystemTime Lib "kernel32" (lpSystemTime As
SYSTEMTIME)
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

Function HeureGMT(Rg As String)
Dim c As Date
On Error Resume Next
If IsDate(CDate(Rg)) Then
c = TimeValue(Hour(Rg) & ":" & Minute(Rg) & ":" & Second(Rg))
If c * 1 = 0 Or Err <> 0 Then MichTime = "": Exit Function
End If
HeureGMT = GMT_Time - Local_Time + c
End Function
'-------------------------------------

'---------------------
Sub Exemple()
MsgBox HeureGMT("16:39:45")
End Sub
'---------------------

Jacky
Le #25981662
Hello Michel,

Même si Sopia du CNRS est très jolie, je veux / dois contrôler qu'elle a bien donner la bonne date.
en réalité je contrôle
- S'il y a connexion internet
- Si l'heure est la date sont identique avec GMT
- Si le passage heure hiver / été est réalisé

J'avais butée sur un format particulier de date, mais j'ai trouvé une solution.
Il y a aussi une fonction de FXM, que je salue au passage qui traite pas mal de format particulier de date
ici; http://www.excelabo.net/excel/conversion_dates_flux_rss


--
Salutations
JJ


"Péhemme"
Pour la synchronisation du temps, je ne connais qu'*un* seul service :
ntp.sophia.cnrs.fr
Bonne fin de dimanche
Michel


"Jacky" a écrit dans le message de groupe de discussion : 52f749b3$0$2925$

Bonjour Denis

Sauf erreur et si j'ai bien compris, ce principe est basé sur l'heure système du pc et nécessite que Windows
soit a l'heure et que le fuseau horaire soit correct.
Or mon soucis est de pouvoir vérifié cela.
W32time de Windows qui doit synchroniser le service de temps est souvent en rade pour l'utilisateur de ce
classeur.

PS: MichTime = "": un reste de fonctionnement perso ????


--
Salutations
JJ


"MichD"
Bonjour,

'Déclaration API dans le haut du module standard :
Private Declare Sub GetLocalTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
Private Declare Sub GetSystemTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
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

Function HeureGMT(Rg As String)
Dim c As Date
On Error Resume Next
If IsDate(CDate(Rg)) Then
c = TimeValue(Hour(Rg) & ":" & Minute(Rg) & ":" & Second(Rg))
If c * 1 = 0 Or Err <> 0 Then MichTime = "": Exit Function
End If
HeureGMT = GMT_Time - Local_Time + c
End Function
'-------------------------------------

'---------------------
Sub Exemple()
MsgBox HeureGMT("16:39:45")
End Sub
'---------------------




Jacky
Le #25980202
Bonjour Denis

Sauf erreur et si j'ai bien compris, ce principe est basé sur l'heure système du pc et nécessite que Windows
soit a l'heure et que le fuseau horaire soit correct.
Or mon soucis est de pouvoir vérifié cela.
W32time de Windows qui doit synchroniser le service de temps est souvent en rade pour l'utilisateur de ce
classeur.

PS: MichTime = "": un reste de fonctionnement perso ????


--
Salutations
JJ


"MichD"
Bonjour,

'Déclaration API dans le haut du module standard :
Private Declare Sub GetLocalTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
Private Declare Sub GetSystemTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
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

Function HeureGMT(Rg As String)
Dim c As Date
On Error Resume Next
If IsDate(CDate(Rg)) Then
c = TimeValue(Hour(Rg) & ":" & Minute(Rg) & ":" & Second(Rg))
If c * 1 = 0 Or Err <> 0 Then MichTime = "": Exit Function
End If
HeureGMT = GMT_Time - Local_Time + c
End Function
'-------------------------------------

'---------------------
Sub Exemple()
MsgBox HeureGMT("16:39:45")
End Sub
'---------------------

Publicité
Poster une réponse
Anonyme