Python Tutoriel CALENDRIER avec exemple

Module Calendrier dans Python possède la classe de calendrier qui permet les calculs pour diverses tâches en fonction de la date, du mois et de l'année. En plus, les classes TextCalendar et HTMLCalendar dans Python vous permet de modifier le calendrier et de l'utiliser selon vos besoins.

Voyons ce que nous pouvons faire avec Python Calendrier.

Étape 1) Exécutez le code.

CALENDRIER dans Python

  • Ligne de code n°1 : On commence par « importer le calendrier » qui importera toutes les classes de ce module.
  • Ligne de code n°3 : c= Calendar.TextCalendar(calendar.SUNDAY) indique à l'interprète de créer un calendrier texte. Le début du mois sera dimanche. Dans Python, vous pouvez formater le calendrier car vous pouvez commencer par changer le jour du mois
  • Ligne de code n°4 : str= c.formatmonth(2025,1) Nous créons un calendrier pour l'année 2025, mois 1 – janvier
  • Ligne de code n°5 : print str imprimera la sortie.

Modifions rapidement la valeur du dimanche au jeudi et vérifions le résultat

CALENDRIER dans Python

Étape 2) Vous pouvez également imprimer le calendrier au format HTML. Cette fonctionnalité est utile aux développeurs s'ils souhaitent apporter des modifications à l'apparence du calendrier.

CALENDRIER dans Python

Étape 3) Boucles sur les jours d'un mois en utilisant c.itermonthday (2025,4), il récupérera le nombre total de jours pour ce mois.

CALENDRIER dans Python

  • Lorsque vous exécutez le code pour obtenir le nombre total de jours pour un mois spécifique, dites « avril », vous obtiendrez 30 jours dans la sortie mais vous verrez également des zéros avec ces jours au début et parfois à la fin. .
  • Les zéros dans la sortie signifient que le jour de la semaine se trouve dans un mois qui se chevauche, ce qui signifie qu'il n'appartient pas à ce mois.
  • Ces zéros apparaissent en sortie car, dans votre code vous avez mentionné le jour (jeudi), donc lorsque vous appelez la fonction « c.itermonthdays », elle commencera à compter les jours à partir de jeudi et votre jeudi ne commencera peut-être pas par la date 1.st d'avril, ce pourrait être le 28th ou 29th de mars, donc lorsque vous exécutez le code, il commencera à compter les jours à partir du 28th de mars et tous les jours suivants jusqu'au 1st D'avril. Ces jours seront comptés comme zéro et dans la sortie, vous verrez ces zéros et il en va de même pour la fin du mois.
  • Ainsi, à l'exception des dates 1 à 30, toutes les dates du mois précédent et du mois suivant apparaîtront dans la sortie sous forme de zéros.

Étape 4) Vous pouvez récupérer les données du système local, comme les mois ou les jours de la semaine, etc.

CALENDRIER dans Python

  • Le résultat ici montre que nous avons imprimé le nom du mois à partir du système local. De même, vous pouvez également récupérer le nom des jours de la semaine comme indiqué ci-dessous
  • La sortie dépendra du système local, supposons que si votre système local se trouve dans un autre pays, il donnera la sortie selon les paramètres locaux de ce pays. Ici, nous avons des mois donc ce ne sera pas une différence mais si c'est une semaine ou un jour, ce sera certainement différent.

CALENDRIER dans Python

Étape 5) Vous pouvez récupérer la liste d'un jour spécifique pour une année entière. Par exemple, il y a une journée d'audit chaque premier Monday d'une semaine. Vous souhaitez connaître la date du premier Monday pour chaque mois. Vous pouvez utiliser ce code

CALENDRIER dans Python

  • mycal = calendrier.moiscalendar(2025, mois) créera un calendrier pour le mois
  • Définissez les variables week1 et week2 sur la première et la deuxième semaine du calendrier.
  • Vérifiez si la semaine 1 contient Monday, définir le jour de l'audit
  • Sinon, définissez le jour de l'audit comme premier Monday en semaine 2
  • La sortie affiche la date du premier Monday cela tombe ce mois-là.
  • La durée de cet objet Cal sera d'une certaine longueur, en fonction du nombre de semaines présentes dans le mois. Dans notre cas, ce sera d'abord un ou deux Monday de la semaine sera le plus souvent la première semaine, mais sinon, envisagez la deuxième semaine. Voyons en détail pourquoi nous considérons également la deuxième semaine.
  • Ici nous utilisons la constante du calendrier Monday, l'objet calendrier vous donne des constantes qui représentent le dimanche, Monday, mardi, ainsi de suite, ainsi de suite. Nous les avons déjà vus. Ainsi, si au cours de la première semaine le jour représenté par le Monday la constante n'est pas égale à 0, rappelez-vous que les zéros signifient les jours qui appartiennent à un autre mois. Donc, dans ce cas, si c'est zéro, ce sera un Monday qui appartient au mois précédent. Mais si le premier Monday n'est pas égal à 0, cela signifie que mon jour d'audit sera dans la première semaine. Sinon, si c'est 0, alors le premier Monday ce n'est pas la première semaine du mois, ça doit être la deuxième.
  • Alors je dis d'accord, définissez ma variable de jour d'audit sur la valeur Monday représenté par la deuxième semaine. Ainsi, le jour de l’audit reviendra quel que soit le jour de la première ou de la deuxième semaine.

Voici le code complet

Python 2 Exemple

import calendar
# Create a plain text calendar
c = calendar.TextCalendar(calendar.THURSDAY)
str = c.formatmonth(2025, 1, 0, 0)
print str

# Create an HTML formatted calendar
hc = calendar.HTMLCalendar(calendar.THURSDAY)
str = hc.formatmonth(2025, 1)
print str
# loop over the days of a month
# zeroes indicate that the day of the week is in a next month or overlapping month
for i in c.itermonthdays(2025, 4):
    print i

    # The calendar can give info based on local such a names of days and months (full and abbreviated forms)
    for name in calendar.month_name:
        print name
    for day in calendar.day_name:
        print day
    # calculate days based on a rule: For instance an audit day on the second Monday of every month
    # Figure out what days that would be for each month, we can use the script as shown here
    for month in range(1, 13):
		# It retrieves a list of weeks that represent the month
        mycal = calendar.monthcalendar(2025, month)
		# The first MONDAY has to be within the first two weeks
        week1 = mycal[0]
        week2 = mycal[1]
        if week1[calendar.MONDAY] != 0:
            auditday = week1[calendar.MONDAY]
        else:
        # if the first MONDAY isn't in the first week, it must be in the second week
        	auditday = week2[calendar.MONDAY]
print "%10s %2d" % (calendar.month_name[month], auditday)

Python 3 Exemple

import calendar
# Create a plain text calendar
c = calendar.TextCalendar(calendar.THURSDAY)
str = c.formatmonth(2025, 1, 0, 0)
print(str)

# Create an HTML formatted calendar
hc = calendar.HTMLCalendar(calendar.THURSDAY)
str = hc.formatmonth(2025, 1)
print(str)
# loop over the days of a month
# zeroes indicate that the day of the week is in a next month or overlapping month
for i in c.itermonthdays(2025, 4):
    print(i)

    # The calendar can give info based on local such a names of days and months (full and abbreviated forms)
    for name in calendar.month_name:
        print(name)
    for day in calendar.day_name:
        print(day)
    # calculate days based on a rule: For instance an audit day on the second Monday of every month
    # Figure out what days that would be for each month, we can use the script as shown here
    for month in range(1, 13):
		# It retrieves a list of weeks that represent the month
        mycal = calendar.monthcalendar(2025, month)
		# The first MONDAY has to be within the first two weeks
        week1 = mycal[0]
        week2 = mycal[1]
        if week1[calendar.MONDAY] != 0:
            auditday = week1[calendar.MONDAY]
        else:
        # if the first MONDAY isn't in the first week, it must be in the second week
        	auditday = week2[calendar.MONDAY]
print("%10s %2d" % (calendar.month_name[month], auditday))

Résumé

  • In Python, vous pouvez formater le calendrier comme vous le souhaitez car vous pouvez changer le jour du mois pour commencer
  • Imprimez le calendrier au format HTML
  • Récupérez les données du système local, comme les mois ou les jours de la semaine
  • Récupérer la liste du jour spécifique pour une année entière