Python - Date et heure

Bonjour à tous, futurs sorciers Python ! Aujourd'hui, nous allons entreprendre un voyage passionnant à travers le royaume des dates et des heures en Python. En tant que votre enseignant en informatique amical et voisin, je suis ravi de vous guider à travers cette aventure. Alors, prenez vos baguettes virtuelles (claviers), et plongeons-y !

Python - Date & Time

Qu'est-ce qu'un intervalle de tic ?

Avant de commencer à jongler avec les dates et les heures, comprenons un concept fondamental : les intervalles de tic. Dans le monde des ordinateurs, le temps est souvent mesuré en tics. Mais qu'est-ce qu'un tic exactement ?

Un tic est comme le cœur de votre ordinateur. Il s'agit de la plus petite unité de temps que l'horloge de votre ordinateur peut mesurer. En Python, nous mesurons les tics en tant que nombre de secondes écoulées depuis le 1er janvier 1970, à 00:00:00 UTC. Ce point dans le temps est souvent appelé l'"époque".

Voyons comment obtenir la valeur actuelle du tic :

import time

ticks = time.time()
print("Valeur actuelle du tic :", ticks)

Si vous exécutez ce code, vous verrez un grand nombre affiché. C'est le nombre de secondes écoulées depuis l'époque. Très cool, non ?

Qu'est-ce qu'un TimeTuple ?

Maintenant, parlons de TimeTuple. Ce n'est pas une nouvelle danse (bien que cela sonne comme ça !), mais plutôt une façon dont Python représente l'heure.

Un TimeTuple est un tuple contenant 9 éléments qui représentent différents aspects de l'heure :

Index Attribut Valeurs
0 Année (par exemple, 2023)
1 Mois 1-12
2 Jour 1-31
3 Heure 0-23
4 Minute 0-59
5 Seconde 0-61 (60 et 61 pour les secondes bissextiles)
6 Jour de la semaine 0-6 (0 est lundi)
7 Jour de l'année 1-366
8 DST -1, 0, 1 (Indicateur de fuseau horaire d'été)

Ne vous inquiétez pas si cela semble écrasant. Nous utiliserons ces éléments tout au long de notre leçon, et vous vous familiariserez avec eux en un rien de temps !

Obtenir l'heure actuelle

Commençons par quelque chose de simple : obtenir l'heure actuelle. Python rend cela incroyablement facile avec le module time :

import time

current_time = time.localtime()
print("Heure actuelle :", current_time)

Lorsque vous exécutez cela, vous verrez un TimeTuple affiché. Chaque nombre correspond à un élément dans le tableau que nous venons de voir. Par exemple, si vous voyez time.struct_time(tm_year=2023, tm_mon=6, tm_mday=15, tm_hour=14, tm_min=30, tm_sec=0, tm_wday=3, tm_yday=166, tm_isdst=0), cela signifie qu'il est le 15 juin 2023, à 14h30.

Obtenir l'heure formatée

Bien que les TimeTuples soient utiles pour les ordinateurs, ils ne sont pas très conviviaux pour les humains. Formatisons notre heure de manière plus lisible :

import time

formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print("Heure formatée :", formatted_time)

Cela affichera quelque chose comme "2023-06-15 14:30:00". Beaucoup mieux, non ? Les %Y, %m, %d, etc., sont des codes de format qui disent à Python comment arranger les éléments de l'heure. C'est comme donner à Python un modèle pour savoir comment vous voulez que votre heure apparaisse.

Obtenir le calendrier pour un mois

Maintenant, augmentons la difficulté et imprimons un calendrier complet pour un mois. Nous utiliserons le module calendar pour cela :

import calendar

year = 2023
month = 6

print(calendar.month(year, month))

Cela affichera un calendrier bien formaté pour juin 2023. C'est comme avoir un mini calendrier de bureau directement dans votre programme Python !

Le module time

Nous avons déjà utilisé le module time un peu, mais explorons-le plus loin. Ce module fournit diverses fonctions liées au temps. Voici quelques-unes utiles :

import time

print("Temps actuel en secondes depuis l'époque :", time.time())
print("Heure locale actuelle :", time.ctime())
print("Mise en sommeil pendant 2 secondes...")
time.sleep(2)
print("Réveillé !")

La fonction sleep() est particulièrement utile lorsque vous voulez que votre programme fasse une pause. C'est comme dire à votre code de prendre une petite sieste !

Le module calendar

Nous avons vu comment imprimer un mois, mais le module calendar peut faire plus :

import calendar

print("L'année 2023 est-elle bissextile ?", calendar.isleap(2023))
print("Combien de années bissextiles entre 2000 et 2050 ?", calendar.leapdays(2000, 2050))
print("Quel jour de la semaine est le 15 juin 2023 ?", calendar.weekday(2023, 6, 15))

Ces fonctions vous aident à travailler avec des calendriers et des dates facilement. Plus besoin de compter sur vos doigts pour deviner les années bissextiles !

Module datetime de Python

Le module datetime est comme la lame suisse de la manipulation du temps en Python. Il combine les fonctionnalités des modules time et calendar et ajoute encore plus de fonctionnalités.

from datetime import datetime, date, time

# Date et heure actuelle
now = datetime.now()
print("Date et heure actuelle :", now)

# Création d'une date spécifique
my_birthday = date(1990, 5, 15)
print("Mon anniversaire :", my_birthday)

# Création d'une heure spécifique
alarm = time(7, 30, 0)
print("Alarme réglée pour :", alarm)

Avec datetime, vous pouvez créer, manipuler et formater des dates et des heures avec facilité.

Objet date de Python

L'objet date du module datetime vous permet de travailler avec des dates (année, mois et jour) :

from datetime import date

today = date.today()
print("Date d'aujourd'hui :", today)
print("Année :", today.year)
print("Mois :", today.month)
print("Jour :", today.day)

C'est comme avoir un calendrier intelligent qui sait quel jour il est et peut vous en dire tout sur lui !

Objet time de Python

De même, l'objet time vous permet de travailler avec des heures (heure, minute, seconde, microseconde) :

from datetime import time

lunch_time = time(12, 30, 0)
print("Heure de midi :", lunch_time)
print("Heure :", lunch_time.hour)
print("Minute :", lunch_time.minute)
print("Seconde :", lunch_time.second)

Maintenant, vous pouvez programmer précisément vos pauses de codage !

Objet datetime de Python

L'objet datetime combine date et time, vous donnant un contrôle total sur les deux :

from datetime import datetime

now = datetime.now()
print("Date et heure actuelle :", now)
print("Année actuelle :", now.year)
print("Mois actuel :", now.month)
print("Jour actuel :", now.day)
print("Heure actuelle :", now.hour)
print("Minute actuelle :", now.minute)
print("Seconde actuelle :", now.second)

C'est comme avoir une montre surpuissante qui sait tout sur le moment actuel !

Objet timedelta de Python

Enfin, parlons de timedelta. Cet objet représente une durée de temps et est extrêmement utile pour l'arithmétique des dates :

from datetime import datetime, timedelta

now = datetime.now()
print("Date et heure actuelle :", now)

# Ajouter 1 jour
tomorrow = now + timedelta(days=1)
print("Demain à cette heure :", tomorrow)

# Soustraire 1 semaine
last_week = now - timedelta(weeks=1)
print("Il y a une semaine à cette heure :", last_week)

Avec timedelta, vous pouvez voyager dans le temps dans votre code ! Eh bien, genre que. Vous pouvez facilement calculer les dates futures et passées, ce qui est très pratique pour de nombreuses applications.

Et voilà, mes jeunes Pythonistes ! Nous avons exploré le monde fascinant des dates et des heures en Python. souvenez-vous, la pratique fait le maître, alors n'hésitez pas à expérimenter avec ces concepts. Avant que vous ne le sachiez, vous manipulerez le temps comme un véritable seigneur du codage temporel !

Credits: Image by storyset