Connaitre si c'est heure d'été ou d'hiver

Résolu/Fermé
cs_perrierbertrand Messages postés 34 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 10 mars 2024 - 25 mars 2023 à 18:12
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 - 26 mars 2023 à 12:17

Bonjour,

j'aimerai connaitre si, a une date donnée, c'est l'heure d'hiver ou d'été

ça fonctionne pour maintenant now()

mais pas à une date donnée

from datetime import datetime
import pytz

date_heure_actuel = datetime.now(pytz.timezone("Europe/Paris"))
summer_time=bool(date_heure_actuel.strftime("%Z") == "CEST")

if summer_time :
	print("heure d'été")
else:
	print("heure d'hiver")

date_heure_actuel = datetime(year=2023, month=6, day=22, hour=10, minute=19, second=10)
summer_time=bool(date_heure_actuel.strftime("%Z") == "CEST")

if summer_time :
	print("heure d'été")
else:
	print("heure d'hiver")

merci de votre futur aide


Linux / Firefox 110.0


6 réponses

_Ritchi_ Messages postés 21209 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 7 avril 2024 6 058
25 mars 2023 à 18:41

Bonjour,

Je t'invite à regarder les solutions proposées ici :
https://discourse.julialang.org/t/how-to-check-if-date-is-summer-time/75950

Dis-nous si l'une a ta préférence.
Ritchi

0
cs_perrierbertrand Messages postés 34 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 10 mars 2024
25 mars 2023 à 19:11

celle de rafael.guerra me semble bien

mais ce n'est pas du python

il faudrait trouver un équivalent de la fonction tolast()

0
cs_perrierbertrand Messages postés 34 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 10 mars 2024
25 mars 2023 à 19:19

j'ai trouvé ça

>>> import datetime
>>> import pytz.reference
>>> local_tnz = pytz.reference.LocalTimezone()
>>> local_tnz.utcoffset(datetime.datetime(2023, 3, 25, 11, 12, 30))
datetime.timedelta(seconds=3600)
>>> local_tnz.utcoffset(datetime.datetime(2023, 3, 26, 11, 12, 30))
datetime.timedelta(seconds=7200)

est-ce que LocalTimezone() prend en compte Europe/Paris ?


0
cs_perrierbertrand Messages postés 34 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 10 mars 2024
25 mars 2023 à 21:30

voici la fonction qui a l'air de fonctionner, malgré l'absence d'indication du lieu "Europe/Paris"

from datetime import datetime
import pytz.reference


def calc_heure_ete_hiver(annee, mois, jour, heure, minute, seconde):
	heure_input=datetime(annee, mois, jour, heure, minute, seconde)
	local_tnz = pytz.reference.LocalTimezone()
	decal_heure_ete_hiver_gmt = local_tnz.utcoffset(heure_input)
	decal_heure_ete_hiver_gmt = -int(decal_heure_ete_hiver_gmt.seconds/3600)
	return decal_heure_ete_hiver_gmt

0

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

Posez votre question
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 929
26 mars 2023 à 11:02

Bonjour 

ce code te retourne l'écart entre l'heure Greenwich Mean Time (l'heure moyenne sur le.méridien de Greenwich) et l'heure locale de ton ordinateur. C'est donc la config de ton ordi qui est prise en compte, c'est pour ça que tu ne spécifie pas le fuseau.

En France, avec un ordinateur configuré à l'heure légale, c'est 1 heure en hiver et 2 heures en été.

Du coup, tant que tu es sûr que ton ordinateur est bien configuré et en France, tu peux te servir de cet écart.

Mais si tu dois utiliser ce code à l'étranger ou dans le milieu scientifique (où en général, on date en UTC {temps universel coordonné}), ça ne fonctionnera pas.


0
cs_perrierbertrand Messages postés 34 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 10 mars 2024
26 mars 2023 à 11:24

Bonjour Whismeril,

merci beaucoup pour votre réponse, effectivement ça me convient car ça tourne en local

mais je vais chercher comment choisir le fuseau horaire à la place de "pytz.reference.LocalTimezone()"

0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 929
26 mars 2023 à 12:17
0