Python KALENDER Opplæring med eksempel

Kalendermodul i Python har kalenderklassen som tillater beregninger for ulike oppgaver basert på dato, måned og år. På toppen av det, klassen TextCalendar og HTMLCalendar i Python lar deg redigere kalenderen og bruke i henhold til dine krav.

La oss se hva vi kan gjøre med Python Kalender.

Trinn 1) Kjør koden.

KALENDER inn Python

  • Kodelinje # 1: Vi begynner med "import kalender" som vil importere alle klassene i denne modulen.
  • Kodelinje #3: c= kalender.Tekstkalender(kalender.SØNDAG) ber tolken lage en tekstkalender. Starten på måneden blir søndag. I Python, kan du formatere kalenderen som du kan endre dagen i måneden til å begynne med
  • Kodelinje # 4: str= c.formatmonth(2025,1) Vi lager kalender for året 2025, måned 1 – januar
  • Kodelinje # 5: print str vil skrive ut utdataene.

La oss raskt endre verdien fra søndag til torsdag og sjekke utgangen

KALENDER inn Python

Trinn 2) Du kan også skrive ut kalenderen i HTML-format, denne funksjonen er nyttig for utviklere hvis de ønsker å gjøre endringer i utseendet til kalenderen

KALENDER inn Python

Trinn 3) Loops over dagene i en måned ved å bruke c.itermonthday (2025,4), vil den hente det totale antallet dager for den måneden.

KALENDER inn Python

  • Når du kjører koden for å få det totale antallet dager for en bestemt måned, si "april", så vil du få 30 dager i utdataene, men du vil også se noen nuller sammen med disse dagene i begynnelsen og noen ganger på slutten av den .
  • Null i utdata betyr at ukedagen er i en overlappende måned, noe som betyr at den ikke tilhører den måneden.
  • Disse nullene vises i utdata fordi du i koden din har nevnt dag (torsdag), så når du kaller funksjonen "c.itermonthdays", vil den begynne å telle dager fra torsdag og torsdagen din starter kanskje ikke med dato 1st april kan det være 28th eller 29th mars, så når du kjører koden vil den begynne å telle dager fra 28th mars og eventuelle dager etter det til 1st april. Disse dagene vil bli regnet som null, og i utdataene vil du se disse nullene, og det samme gjelder slutten av måneden.
  • Så bortsett fra dato 1-30 vil alle datoene fra forrige så vel som postmåned vises i utdataene som nuller.

Trinn 4) Du kan hente dataene fra det lokale systemet, som måneder eller ukedager, etc

KALENDER inn Python

  • Utdataene her viser at vi har skrevet ut månedsnavnet fra det lokale systemet. På samme måte kan du også hente ukedagenes navn som vist nedenfor
  • Utdataene vil avhenge av det lokale systemet, anta at hvis ditt lokale system er noen andre land, vil det gi utdata i henhold til de lokale innstillingene i det landet. Her har vi måneder, så det vil ikke være noen forskjell, men hvis det er en uke eller dag, vil det sikkert variere.

KALENDER inn Python

Trinn 5) Du kan hente listen over den spesifikke dagen for et helt år. For eksempel er det en revisjonsdag hver første Monday av en uke. Du vil vite datoen for første Monday for hver måned. Du kan bruke denne koden

KALENDER inn Python

  • mycal = calendar.monthcalendar(2025, måned) vil opprette kalender for måneden
  • Sett variablene uke1 og uke2 til den første og andre uken i kalenderen
  • Sjekk om uke 1 inneholder Monday, sett revisjonsdag
  • Else satte revisjonsdagen som den første Monday i uke 2
  • Utgangen viser datoen for den første Monday som faller i den måneden.
  • Lengden på dette Cal-objektet kommer til å være en viss lengde, basert på hvor mange uker det er i måneden. I vårt tilfelle kommer det til å være en eller to som sådan først Monday uken vil oftest være i den første uken, men hvis ikke, vurder den andre uken. La oss se i detalj hvorfor vi også vurderer den andre uken.
  • Her bruker vi kalenderens konstant Monday, kalenderobjektet gir deg konstanter som representerer søndag, Monday, tirsdag, så videre, så videre. Vi har sett disse tidligere. Så hvis i uke én dagen representert av Monday konstant er ikke lik 0, husk at nuller betyr dager som tilhører en annen måned. Så, i dette tilfellet, hvis det er null, kommer det til å være en Monday som tilhører forrige måned. Men hvis den første Monday er ikke lik 0, det betyr at min revisjonsdag vil være innen uke én. Ellers, hvis det er 0, så den første Monday er ikke i den første uken i måneden, det må være i den andre.
  • Så da sier jeg ok, sett min revisjonsdagsvariabel til å være Monday representert ved uke to. Så revisjonsdagen kommer tilbake med hva dagen er for enten den første eller andre uken.

Her er den komplette koden

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

Sammendrag

  • In Python, kan du formatere kalenderen slik du vil, da du kan endre dagen i måneden for å begynne
  • Skriv ut kalenderen i HTML-format
  • Hent dataene fra det lokale systemet, som måneder eller ukedager
  • Hent listen over den spesifikke dagen for et helt år