Python KALENDER Tutorial med eksempel

Kalendermodul i Python har kalenderklassen, der tillader beregninger for forskellige opgaver baseret pรฅ dato, mรฅned og รฅr. Oven i det, klassen TextCalendar og HTMLCalendar i Python giver dig mulighed for at redigere kalenderen og bruge den efter dit behov.

Lad os se, hvad vi kan gรธre med Python Kalender.

Trin 1) Kรธr koden.

KALENDER ind Python

  • Kodelinje # 1: Vi begynder med "import kalender", som vil importere alle klasser i dette modul.
  • Kodelinje # 3: c= kalender.Tekstkalender(kalender.Sร˜NDAG) fortรฆller tolken om at oprette en tekstkalender. Starten pรฅ mรฅneden bliver sรธndag. I Python, kan du formatere kalenderen, da du kan รฆndre dagen i mรฅneden til at begynde med
  • Kodelinje # 4: str= c.formatmonth(2025,1) Vi opretter kalender for รฅret 2025, mรฅned 1 โ€“ januar
  • Kodelinje # 5: print str vil udskrive output.

Lad os hurtigt รฆndre vรฆrdien fra sรธndag til torsdag og kontrollere outputtet

KALENDER ind Python

Trin 2) Du kan ogsรฅ udskrive kalenderen i HTML-format, denne funktion er nyttig for udviklere, hvis de รธnsker at foretage รฆndringer i udseendet af kalenderen

KALENDER ind Python

Trin 3) loops over dagene i en mรฅned ved at bruge c.itermonthday (2025,4), vil den hente det samlede antal dage for den mรฅned.

KALENDER ind Python

  • Nรฅr du udfรธrer koden for at fรฅ det samlede antal dage for en bestemt mรฅned, sig "april", sรฅ vil du fรฅ 30 dage i outputtet, men du vil ogsรฅ se nogle nuller sammen med disse dage i begyndelsen og nogle gange i slutningen af โ€‹โ€‹det .
  • Nuller i output betyder, at ugedagen er i en overlappende mรฅned, hvilket betyder, at den ikke hรธrer til den mรฅned.
  • Disse nuller vises i output, fordi du i din kode har nรฆvnt dag (torsdag), sรฅ nรฅr du kalder funktionen "c.itermonthdays", vil den begynde at tรฆlle dage fra torsdag, og din torsdag starter muligvis ikke med dato 1st april er det mรฅske den 28th eller 29th marts, sรฅ nรฅr du udfรธrer koden, begynder den at tรฆlle dage fra den 28th marts og eventuelle dage derefter indtil 1st april. Disse dage vil blive talt som nul, og i outputtet vil du se disse nuller, og det samme gรฆlder for slutningen af โ€‹โ€‹mรฅneden.
  • Sรฅ bortset fra dato 1-30 vil alle datoer fra tidligere sรฅvel som postmรฅned vises i outputtet som nuller.

Trin 4) Du kan hente dataene fra det lokale system, som mรฅneder eller hverdage osv

KALENDER ind Python

  • Outputtet her viser, at vi har udskrevet mรฅnedens navn fra det lokale system. Ligeledes kan du ogsรฅ hente ugedagenes navn som vist nedenfor
  • Outputtet vil afhรฆnge af det lokale system, antag, at hvis dit lokale system er nogle andre lande, vil det give output i henhold til de lokale indstillinger i det pรฅgรฆldende land. Her har vi mรฅneder, sรฅ det vil ikke vรฆre en forskel, men hvis det er en uge eller dag, vil det helt sikkert vรฆre anderledes.

KALENDER ind Python

Trin 5) Du kan hente listen over den specifikke dag for et helt รฅr. For eksempel er der en revisionsdag hver fรธrste Monday af en uge. Du รธnsker at vide datoen for fรธrste Monday for hver mรฅned. Du kan bruge denne kode

KALENDER ind Python

  • mycal = calendar.monthcalendar(2025, mรฅned) vil oprette kalender for mรฅneden
  • Indstil variablerne uge1 og uge2 til den fรธrste og anden uge i kalenderen
  • Tjek om uge 1 indeholder Monday, sรฆt revisionsdag
  • Else satte revisionsdagen som den fรธrste Monday i uge 2
  • Udgangen viser datoen for den fรธrste Monday der falder i den mรฅned.
  • Lรฆngden af โ€‹โ€‹dette Cal-objekt vil vรฆre en vis lรฆngde, baseret pรฅ hvor mange uger der er i mรฅneden. I vores tilfรฆlde bliver det en eller to som sรฅdan fรธrst Monday af ugen vil oftest vรฆre i den fรธrste uge, men hvis ikke, sรฅ overvej den anden uge. Lad os se i detaljer, hvorfor vi ogsรฅ overvejer den anden uge.
  • Her bruger vi kalenderens konstant Monday, kalenderobjektet giver dig konstanter, der reprรฆsenterer sรธndag, Monday, tirsdag, sรฅ videre, sรฅ videre. Vi har set disse tidligere. Sรฅ hvis i uge et dagen reprรฆsenteret ved Monday konstant er ikke lig med 0, husk nuller betyder dage, der hรธrer til en anden mรฅned. Sรฅ i dette tilfรฆlde, hvis det er nul, vil det vรฆre en Monday der hรธrer til den foregรฅende mรฅned. Men hvis den fรธrste Monday er ikke lig med 0, det betyder, at min revisionsdag vil vรฆre inden for uge et. Ellers, hvis det er 0, sรฅ den fรธrste Monday er ikke i den fรธrste uge i mรฅneden, det skal vรฆre i den anden.
  • Sรฅ, sรฅ siger jeg okay, sรฆt min revisionsdagsvariabel til at vรฆre Monday reprรฆsenteret af uge to. Sรฅ revisionsdagen vil komme tilbage med, hvad end dagen er for enten den fรธrste eller anden uge.

Her er den komplette kode

Python 2 Eksempel

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 Eksempel

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))

Resumรฉ

  • In Python, kan du formatere kalenderen, som du vil, da du kan รฆndre den dag i mรฅneden, sรฅ den begynder
  • Udskriv kalenderen i HTML-format
  • Hent dataene fra det lokale system, f.eks. mรฅneder eller hverdage
  • Hent listen over den specifikke dag for et helt รฅr

Opsummer dette indlรฆg med: