Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
python:dates_et_heures [2021/10/21 08:31] marclebrun [Conversion de date/heure vers chaîne] |
python:dates_et_heures [2023/02/22 15:23] (Version actuelle) marclebrun [Début et fin de mois] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Dates et Heures ====== | ====== Dates et Heures ====== | ||
+ | |||
+ | ===== Date et heure ===== | ||
+ | |||
+ | <code python> | ||
+ | import datetime | ||
+ | |||
+ | d = datetime.date(1971, 4, 22) | ||
+ | t = datetime.time(8, 45) | ||
+ | </code> | ||
+ | |||
+ | Combiner une date avec une heure : | ||
+ | |||
+ | <code python> | ||
+ | import datetime | ||
+ | |||
+ | d = datetime.date(1971, 4, 22) | ||
+ | t = datetime.time(8, 45) | ||
+ | |||
+ | dt = datetime.datetime.combine(d, t) | ||
+ | </code> | ||
===== Date et heure actuelles ===== | ===== Date et heure actuelles ===== | ||
Ligne 41: | Ligne 61: | ||
# '12/14/2020, 06:49:17' | # '12/14/2020, 06:49:17' | ||
- | datetime.datetime.now.strftime("%Y%m%d-%H%M") | + | datetime.datetime.now().strftime("%Y%m%d-%H%M") |
# '20201412-0649' | # '20201412-0649' | ||
</code> | </code> | ||
Ligne 106: | Ligne 126: | ||
=> les variables ''lastMonthStart'' et ''lastMonthDay'' sont du type ''datetime.date''. | => les variables ''lastMonthStart'' et ''lastMonthDay'' sont du type ''datetime.date''. | ||
+ | Dates de début et de fin du mois en cours : | ||
+ | |||
+ | <code python> | ||
+ | import datetime, calendar | ||
+ | |||
+ | def first_day_this_month(): | ||
+ | today = datetime.date.today() | ||
+ | return today.replace(day = 1) | ||
+ | |||
+ | def last_day_this_month(): | ||
+ | today = datetime.date.today() | ||
+ | monthrange = calendar.monthrange(today.year, today.month) | ||
+ | return today.replace(day = monthrange[1]) | ||
+ | </code> | ||
+ | |||
+ | => Ces fonctions renvoient une valeur de type ''datetime.date'' | ||
+ | |||
+ | ===== Numéro de semaine / Jour de la semaine ===== | ||
+ | |||
+ | ==== Jour de la semaine ==== | ||
+ | |||
+ | <code python> | ||
+ | import datetime | ||
+ | |||
+ | today = datetime.date.today() | ||
+ | |||
+ | # indice du jour (voir tableau ci-dessous) | ||
+ | jour = today.weekday() | ||
+ | |||
+ | # nom du jour | ||
+ | print("Nous sommes un " + today.strftime('%A')) | ||
+ | </code> | ||
+ | |||
+ | ^ 0 | Monday | | ||
+ | ^ 1 | Tuesday | | ||
+ | ^ 2 | Wednesday | | ||
+ | ^ 3 | Thursday | | ||
+ | ^ 4 | Friday | | ||
+ | ^ 5 | Saturday | | ||
+ | ^ 6 | Sunday | | ||
+ | |||
+ | ==== Numéro de semaine ==== | ||
+ | |||
+ | <code python> | ||
+ | import datetime | ||
+ | |||
+ | today = datetime.date.today() | ||
+ | |||
+ | # Afficher le numéro de semaine avec %W | ||
+ | print("Nous sommes en semaine " + today.strftime('%W')) | ||
+ | |||
+ | # L'obtenir sous forme numérique | ||
+ | semaine = int(today.strftime('%W')) | ||
+ | </code> | ||
+ | |||
+ | ==== Isocalendar ==== | ||
+ | |||
+ | Une meilleure méthode :-) permet d'obtenir la semaine et le jour de la semaine, mais | ||
+ | **attention** les numéros de jours correspondent à une norme différente : | ||
+ | |||
+ | ^ 1 | Monday | | ||
+ | ^ 2 | Tuesday | | ||
+ | ^ 3 | Wednesday | | ||
+ | ^ 4 | Thursday | | ||
+ | ^ 5 | Friday | | ||
+ | ^ 6 | Saturday | | ||
+ | ^ 7 | Sunday | | ||
+ | |||
+ | <code python> | ||
+ | import datetime | ||
+ | |||
+ | today = datetime.date.today() | ||
+ | |||
+ | i = today.isocalendar() | ||
+ | annee = i.year | ||
+ | semaine = i.week | ||
+ | jour = i.weekday | ||
+ | </code> | ||