Tutoriel Python CALENDAR avec exemple
Le module de calendrier en Python a la classe de calendrier qui permet les calculs pour diverses tâches en fonction de la date, du mois et de l'année. De plus, les classes TextCalendar et HTMLCalendar en Python vous permettent de modifier le calendrier et de l'utiliser selon vos besoins.
Voyons ce que nous pouvons faire avec Python Calendar.
Étape 1) Exécutez le code.
- Ligne de code # 1 :Nous commençons par "import calendar" qui importera toutes les classes de ce module.
- Ligne de code # 3 :c=calendar.TextCalendar(calendar.SUNDAY) indique à l'interpréteur de créer un calendrier de texte. Le début du mois sera dimanche. En Python, vous pouvez formater le calendrier car vous pouvez changer le jour du mois pour commencer
- Ligne de code # 4 :str=c.formatmonth(2025,1) Nous créons un calendrier pour l'année 2025, mois 1 - janvier
- Ligne de code # 5 :print str imprimera la sortie.
Modifions rapidement la valeur de dimanche à jeudi et vérifions la sortie
Étape 2) Vous pouvez également imprimer le calendrier au format HTML, cette fonctionnalité est utile pour le développeur s'il souhaite apporter des modifications à l'apparence du calendrier
Étape 3) Boucle sur les jours d'un mois en utilisant c.itermonthday (2025,4), il récupérera le nombre total de jours pour ce mois.
- 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. 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 er d'avril, ce pourrait être le 28 ème ou 29 ème de mars, donc lorsque vous exécuterez le code, il commencera à compter les jours à partir du 28 th de mars et tous les jours suivants jusqu'au 1 er D'avril. Ces jours seront comptés comme zéro et dans la sortie, vous verrez ces zéros et la même chose s'applique à la fin du mois.
- Ainsi, à l'exception de la date 1-30, toutes les dates des mois précédents et postérieurs 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.
- La sortie ici montre que nous avons imprimé le nom des 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 est dans d'autres 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.
Étape 5) Vous pouvez récupérer la liste du jour spécifique pour une année entière. Par exemple, il y a une journée d'audit chaque premier lundi de la semaine. Vous voulez connaître la date du premier lundi de chaque mois. Vous pouvez utiliser ce code
- mycal =calendar.monthcalendar(2025, month) va créer un calendrier pour le mois
- Définissez les variables semaine1 et semaine2 sur la première et la deuxième semaine du calendrier
- Vérifier si la semaine 1 contient le lundi, définir le jour de l'audit
- Sinon, définissez le jour de l'audit sur le premier lundi de la semaine 2
- La sortie affiche la date du premier lundi qui tombe dans ce mois.
- La longueur de cet objet Cal va être d'une certaine longueur, basée sur le nombre de semaines dans le mois. Dans notre cas, ce sera un ou deux, car le premier lundi de la semaine sera le plus souvent la première semaine, mais si ce n'est pas le cas, envisagez la deuxième semaine. Voyons en détail pourquoi nous considérons également la deuxième semaine.
- Ici, nous utilisons la constante lundi du calendrier, l'objet calendrier vous donne des constantes qui représentent dimanche, lundi, mardi, etc. Nous les avons déjà vus. Donc, si dans la première semaine, le jour représenté par la constante du lundi n'est pas égal à 0, rappelez-vous que les zéros signifient des jours qui appartiennent à un autre mois. Donc, dans ce cas, si c'est zéro, ce sera un lundi qui appartient au mois précédent. Mais si le premier lundi 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 lundi n'est pas dans la première semaine du mois, il doit être dans la seconde.
- Alors, je dis d'accord, définissez ma variable de jour d'audit sur le lundi 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
Exemple Python 2
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)
Exemple Python 3
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é :
- En 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érer 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
Python
- Python String strip() Fonction avec EXAMPLE
- Python String count() avec des EXEMPLES
- Fonction Python round() avec EXEMPLES
- Fonction Python map() avec EXEMPLES
- Python Timeit() avec des exemples
- Rendement en Python Tutoriel :Exemple de générateur et rendement vs retour
- Compteur Python dans les collections avec exemple
- Python List count() avec des EXEMPLES
- Index de liste Python () avec exemple