Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

heure GMT

9 réponses
Avatar
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

9 réponses

Avatar
Jacquouille
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
Avatar
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
'---------------------
Avatar
Jacky
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" a écrit dans le message de news: 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
'---------------------

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

--
Salutations
JJ


"Jacky" a écrit dans le message de news: 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" a écrit dans le message de news: 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
'---------------------





Avatar
MichD
Ta langue maternelle est le français?

Ta question était : "un soucis de comparaison de la date système et la date
GMT"
Avatar
Jacky
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" a écrit dans le message de news: ld7q63$jci$
Ta langue maternelle est le français?

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


Avatar
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" a écrit dans le message de news:
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
'---------------------

Avatar
Jacky
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" a écrit dans le message de news: ld8d5q$7jg$
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" a écrit dans le message de news: 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
'---------------------




Avatar
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" a écrit dans le message de news: 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
'---------------------