Heure d'été

Le
Sam
Bonjour,
existe t'il une méthode pour savoir si pour une date donnée on est en heure
d'hiver ou en heure d'été ?

Merci d'avance
Cordialement
Michel
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Patrick BASTARD
Le #6648051
Bonjour, *Sam*

Extrait de WIKIPEDIA :
http://fr.wikipedia.org/wiki/Changement_d%27heure

L'heure d'été ...

...Pour l'Europe (sauf en Islande), la période s'étend par décret du dernier
dimanche de mars au dernier dimanche d'octobre. Chaque pays est libre de
suivre ou non ce changement (si oui, par contre il doit le faire à la date
fixée) et de choisir comme heure d'hiver une heure calée sur le méridien de
son fuseau horaire comme la Grande-Bretagne ou le Portugal ou de la décaler
d'une heure comme la France.

Pour l'Amérique du Nord, et à partir de 2007, cette période estivale débute
dans la nuit du deuxième dimanche de mars, tandis que le retour à l'heure
normale se fait le premier dimanche de novembre. (Note du mois d'octobre
2006 : après l'adoption de l'« Energy Policy Act of 2005 », à partir de
2007, les États-Unis et le Canada basculent entre les heures d'été et les
heures d'hiver de la façon suivante : le passage à l'heure d'été se fait le
deuxième dimanche de mars alors que le retour se fait le premier dimanche de
novembre. Il faudra s'attendre à ce que d'autres pays changent aussi leurs
dates de passage pour s'aligner sur l'Amérique du Nord.)

Lors du passage à l'heure d'été, à 1 heure en temps universel coordonné,
soit à 2 heures du matin en heure européenne d'hiver (1 heure en
Grande-Bretagne et au Portugal, 3 heures en Europe de l'Est), les montres
sont avancées de soixante minutes, de sorte qu'il est couramment dit qu'«
une heure de sommeil est perdue ». Lors du passage à l'heure d'hiver, à 1
heure en temps universel, soit à 3 heures du matin en heure européenne d'été
(2 heures en Grande-Bretagne et au Portugal, 4 heures en Europe de l'Est),
les montres sont retardées de soixante minutes et « une heure de sommeil est
gagnée ».

A partir de là, Excel saura effectivement calculer si, pour un lieu donné et
une date donnée, on est en heure d'hiver ou en heure d'été.

--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.


Bonjour,
existe t'il une méthode pour savoir si pour une date donnée on est en
heure d'hiver ou en heure d'été ?

Merci d'avance
Cordialement
Michel


Patrick BASTARD
Le #6648251
Bonjour, *Sam*

Pour 2008, si ta date est en A4 :
=SI(ET(A4>39537;A4<9747);"Eté";"Hiver")

--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.

Bonjour,
existe t'il une méthode pour savoir si pour une date donnée on est en
heure d'hiver ou en heure d'été ?

Merci d'avance
Cordialement
Michel


Mais qui est Paul
Le #6648241
Bonsour® Sam avec ferveur ;o))) vous nous disiez :

existe t'il une méthode pour savoir si pour une date donnée on est en
heure d'hiver ou en heure d'été ?


encore faut-il préciser dans quel fuseau horaire on se trouve ????

Le passage à l'heure d'été se fait le dernier dimanche de mars à 2 h 00 du
matin.
Depuis 1996, le passage à l'heure d'hiver s'effectue le dernier dimanche
d'octobre à 3 h 00

avec une fonction personnalisée :
Function HeureEte(target As Date) As Boolean
Dim deb As Date, fin As Date, EtoH As Date, HtoE As Date
deb = DateSerial(Year(target), 4, 1)
fin = DateSerial(Year(target), 11, 1)
EtoH = fin - Day(fin) + 1 - Weekday(fin - Day(fin) - 7)
HtoE = deb - Day(deb) + 1 - Weekday(deb - Day(deb) - 7)
HeureEte = (target > HtoE) And (target < EtoH)
End Function

complément :
Connaitre le décalage horaire par rapport à GMT
(sous réserve que Windows soit a l'heure et que le fuseau horaire soit correct)

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
Sub info_tps()
Dim MyTime As SYSTEMTIME
Dim SysTime As SYSTEMTIME
GetLocalTime MyTime
GetSystemTime SysTime
MsgBox "Local Time :" & TimeSerial(MyTime.wHour, MyTime.wMinute, MyTime.wSecond)
_
& Chr(10) & "GMT Time :" & TimeSerial(SysTime.wHour, SysTime.wMinute,
SysTime.wSecond)

End Sub

--
--
@+
;o)))

Sam
Le #6648561
re-Bonjour
j'avais oublié en effet de préciser le pays : France (+1h en hiver par
rapport au TU; +2h en été )

Avec l'explication de Patrick, j'arrive à cette formule qui me change
l'heure légale en heure TU

si date + heure comprise entre le dernier dimanche de mars 2h00 et le
dernier dimanche d'octobre 3h, c'est l'été: l'heure TU=heure -2, autrement
c'est l'hiver: l'heure TU=heure -1

en A2 la date
en B2 l'heure légale
=SI(ET(A2+B2>ÚTE(ANNEE(A2);3;31)-JOURSEM(DATE(ANNEE(A2);3;31);2)+
2/24;A2+B2<ÚTE(ANNEE(A2);10;31)-JOURSEM(DATE(ANNEE(A2);10;31);2)
+3/24);B2-2/24;B2-1/24)
Il reste un litige entre le 2h et 3h du matin le dernier dimanche d'octobre
car ça peut être la fin de l'heure d'été ou le début de l'heure d'hiver.

Par contre en décryptant la macro de Paul?, il semblerait que l'ordinateur
pourrait me fournir directement l'heure TU actuelle, on est obligé de passer
par une macro pour l'obtenir ?

Cordialement
Sam

"Sam" 482f19e1$0$862$


Bonjour,
existe t'il une méthode pour savoir si pour une date donnée on est en
heure d'hiver ou en heure d'été ?

Merci d'avance
Cordialement
Michel



Modeste
Le #6649131
Bonsour® Sam avec ferveur ;o))) vous nous disiez :

Il reste un litige entre le 2h et 3h du matin le dernier dimanche d'octobre
car ça peut être la fin de l'heure d'été ou le début de l'heure d'hiver.


Union européenne
La norme ISO concernant la date permet un traitement informatisé de l'heure et
du changement d'heure estival. La chaîne de caractères représentant l'heure
indique le fuseau horaire accompagné du changement d'heure éventuel : par
exemple, l'heure légale française est notée en hiver CET (Central European time,
heure d'Europe centrale) et en été CEST (Central European summer time, heure d'été
d'Europe centrale).
À compter de l'année 2002, les changements d'heure en été et en hiver doivent se
faire à des dates prédéfinies (directive 2000/84/CE du Parlement européen et du
Conseil, et document 52000PC0302) :
la période de l'heure d'été commence, à 1 heure du matin, temps universel
(coordonné), le dernier dimanche de mars ;
la période de l'heure d'été se termine, à 1 heure du matin, temps universel
(coordonné), le dernier dimanche d'octobre.

correction à la proposition précédente:

Function HeureEte(target As Date) As String
Application.Volatile
Dim deb As Date, fin As Date, EtoH As Date, HtoE As Date
deb = DateSerial(Year(target), 4, 1)
fin = DateSerial(Year(target), 11, 1)
EtoH = (1 / 24) + fin - Day(fin) + 1 - Weekday(fin - Day(fin) - 7)
HtoE = (1 / 24) - deb - Day(deb) + 1 - Weekday(deb - Day(deb) - 7)
HeureEte = "heure d'" & IIf((target > HtoE) And (target < EtoH), "été",
"hiver")
End Function

Par contre en décryptant la macro de Paul?, ( Paul est Mickey ;o))), il
semblerait que
l'ordinateur pourrait me fournir directement l'heure TU actuelle,
Voir remarque concernant la mise à l'heure correcte de votre PC et prise en

compte du fuseau horaire

on est obligé de passer par une macro pour l'obtenir ?


;o)))
Pire que ça !!!
il s'agit ici d'API Windows (librairy Kernel32)
une interface de code source fournie par Windows en vue de répondre à des
requêtes pour des services et communiquer avec un autre programme

--
@+
( )
: o)
( )

Patrick BASTARD
Le #6649121
Bonjour, *Modeste*

Hé bé...
;-)

--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.

Bonsour® Sam avec ferveur ;o))) vous nous disiez :

Il reste un litige entre le 2h et 3h du matin le dernier dimanche
d'octobre car ça peut être la fin de l'heure d'été ou le début de
l'heure d'hiver.


Union européenne
La norme ISO concernant la date permet un traitement informatisé de
l'heure et du changement d'heure estival. La chaîne de caractères
représentant
l'heure indique le fuseau horaire accompagné du changement d'heure
éventuel : par exemple, l'heure légale française est notée en hiver
CET (Central European time, heure d'Europe centrale) et en été CEST
(Central European summer time, heure d'été d'Europe centrale).
À compter de l'année 2002, les changements d'heure en été et en hiver
doivent se faire à des dates prédéfinies (directive 2000/84/CE du
Parlement européen et du Conseil, et document 52000PC0302) :
la période de l'heure d'été commence, à 1 heure du matin, temps
universel (coordonné), le dernier dimanche de mars ;
la période de l'heure d'été se termine, à 1 heure du matin, temps
universel (coordonné), le dernier dimanche d'octobre.

correction à la proposition précédente:

Function HeureEte(target As Date) As String
Application.Volatile
Dim deb As Date, fin As Date, EtoH As Date, HtoE As Date
deb = DateSerial(Year(target), 4, 1)
fin = DateSerial(Year(target), 11, 1)
EtoH = (1 / 24) + fin - Day(fin) + 1 - Weekday(fin - Day(fin) - 7)
HtoE = (1 / 24) - deb - Day(deb) + 1 - Weekday(deb - Day(deb) - 7)
HeureEte = "heure d'" & IIf((target > HtoE) And (target < EtoH),
"été", "hiver")
End Function

Par contre en décryptant la macro de Paul?, ( Paul est Mickey ;o))),
il semblerait que
l'ordinateur pourrait me fournir directement l'heure TU actuelle,
Voir remarque concernant la mise à l'heure correcte de votre PC et

prise en compte du fuseau horaire

on est obligé de passer par une macro pour l'obtenir ?


;o)))
Pire que ça !!!
il s'agit ici d'API Windows (librairy Kernel32)
une interface de code source fournie par Windows en vue de répondre à
des requêtes pour des services et communiquer avec un autre programme



Patrick BASTARD
Le #6649461
Bonjour, *Modeste*

HtoE = (1 / 24) - deb - Day(deb) + 1 - Weekday(deb - Day(deb) - 7)
?
HtoE = (1 / 24) + deb - Day(deb) + 1 - Weekday(deb - Day(deb) - 7)
Non ?

--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.



Bonsour® Sam avec ferveur ;o))) vous nous disiez :

Il reste un litige entre le 2h et 3h du matin le dernier dimanche
d'octobre car ça peut être la fin de l'heure d'été ou le début de
l'heure d'hiver.


Union européenne
La norme ISO concernant la date permet un traitement informatisé de
l'heure et du changement d'heure estival. La chaîne de caractères
représentant
l'heure indique le fuseau horaire accompagné du changement d'heure
éventuel : par exemple, l'heure légale française est notée en hiver
CET (Central European time, heure d'Europe centrale) et en été CEST
(Central European summer time, heure d'été d'Europe centrale).
À compter de l'année 2002, les changements d'heure en été et en hiver
doivent se faire à des dates prédéfinies (directive 2000/84/CE du
Parlement européen et du Conseil, et document 52000PC0302) :
la période de l'heure d'été commence, à 1 heure du matin, temps
universel (coordonné), le dernier dimanche de mars ;
la période de l'heure d'été se termine, à 1 heure du matin, temps
universel (coordonné), le dernier dimanche d'octobre.

correction à la proposition précédente:

Function HeureEte(target As Date) As String
Application.Volatile
Dim deb As Date, fin As Date, EtoH As Date, HtoE As Date
deb = DateSerial(Year(target), 4, 1)
fin = DateSerial(Year(target), 11, 1)
EtoH = (1 / 24) + fin - Day(fin) + 1 - Weekday(fin - Day(fin) - 7)
HtoE = (1 / 24) - deb - Day(deb) + 1 - Weekday(deb - Day(deb) - 7)
HeureEte = "heure d'" & IIf((target > HtoE) And (target < EtoH),
"été", "hiver")
End Function

Par contre en décryptant la macro de Paul?, ( Paul est Mickey ;o))),
il semblerait que
l'ordinateur pourrait me fournir directement l'heure TU actuelle,
Voir remarque concernant la mise à l'heure correcte de votre PC et

prise en compte du fuseau horaire

on est obligé de passer par une macro pour l'obtenir ?


;o)))
Pire que ça !!!
il s'agit ici d'API Windows (librairy Kernel32)
une interface de code source fournie par Windows en vue de répondre à
des requêtes pour des services et communiquer avec un autre programme



Michel Pierron
Le #6650661
Au plus simple :

Sub SummerHour()
Dim Obj As Object, Msg$: Msg = "Heure d'hiver !"
For Each Obj In GetObject("winmgmts:").InstancesOf("Win32_ComputerSystem")
If Obj.DayLightinEffect Then Msg = "Heure d'été !"
Next
MsgBox Msg, 64
End Sub

MP

"Sam" news:482f19e1$0$862$


Bonjour,
existe t'il une méthode pour savoir si pour une date donnée on est en
heure d'hiver ou en heure d'été ?

Merci d'avance
Cordialement
Michel




Modeste
Le #6650961
Bonsour® Michel Pierron avec ferveur ;o))) vous nous disiez :

Au plus simple :
Sub SummerHour()
Dim Obj As Object, Msg$: Msg = "Heure d'hiver !"
For Each Obj In
GetObject("winmgmts:").InstancesOf("Win32_ComputerSystem") If
Obj.DayLightinEffect Then Msg = "Heure d'été !" Next
MsgBox Msg, 64
End Sub


Joli !!
en effet mais ceci ne vaut que pour la date courante sur le poste utilisé et
dépendement de la mise à l'heure correcte de ce poste.

Toujours dépendement du poste
comment integrer la liste des fuseaux (décalage UTC) utilisée par Windows
et ceci pour n'importe quelle date utilisée ?

ex :
Summerhour(Unedate, décalage UTC)
sachant évidement que pour un même fuseau certain pays n'utilisent pas le même
décalage
;o)))

http://excelabo.net/moteurs/compteclic.php?nom=gd-worldtime
http://excelabo.net/moteurs/compteclic.php?nom=mp-timezone

nb :
n'aurais-tu point commis ici-même il y a déja pas mal de temps
un classeur avec les dates fériées dans plusieurs pays autres que la France

salutations
--
@+
;o)))

Frédéric Sigonneau
Le #6651631
nb :
n'aurais-tu point commis ici-même il y a déja pas mal de temps
un classeur avec les dates fériées dans plusieurs pays autres que la France


Ne serait-ce point cela que tu cherches (de Daniel Maher) :

http://cjoint.com/?fsnXNCVATo

FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.fr

Bonsour® Michel Pierron avec ferveur ;o))) vous nous disiez :

Au plus simple :
Sub SummerHour()
Dim Obj As Object, Msg$: Msg = "Heure d'hiver !"
For Each Obj In
GetObject("winmgmts:").InstancesOf("Win32_ComputerSystem") If
Obj.DayLightinEffect Then Msg = "Heure d'été !" Next
MsgBox Msg, 64
End Sub


Joli !!
en effet mais ceci ne vaut que pour la date courante sur le poste utilisé et
dépendement de la mise à l'heure correcte de ce poste.

Toujours dépendement du poste
comment integrer la liste des fuseaux (décalage UTC) utilisée par Windows
et ceci pour n'importe quelle date utilisée ?

ex :
Summerhour(Unedate, décalage UTC)
sachant évidement que pour un même fuseau certain pays n'utilisent pas le même
décalage
;o)))

http://excelabo.net/moteurs/compteclic.php?nom=gd-worldtime
http://excelabo.net/moteurs/compteclic.php?nom=mp-timezone

nb :
n'aurais-tu point commis ici-même il y a déja pas mal de temps
un classeur avec les dates fériées dans plusieurs pays autres que la France

salutations



Publicité
Poster une réponse
Anonyme