Python KALENDER Handledning med exempel

Kalendermodul in Python har kalenderklassen som tillรฅter berรคkningar fรถr olika uppgifter baserat pรฅ datum, mรฅnad och รฅr. Ovanpรฅ det, klassen TextCalendar och HTMLCalendar i Python lรฅter dig redigera kalendern och anvรคnda enligt dina krav.

Lรฅt se vad vi kan gรถra med Python Kalender.

Steg 1) Kรถr koden.

KALENDER in Python

  • Code Rad # 1: Vi bรถrjar med "importera kalender" som importerar alla klasser i den hรคr modulen.
  • Code Rad #3: c= calendar.TextCalendar(calendar.SUNDAY) anger att tolken ska skapa en textkalender. Mรฅnadens bรถrjan blir sรถndag. Python, kan du formatera kalendern eftersom du kan รคndra dagen i mรฅnaden till att bรถrja med
  • Code Rad # 4: str= c.formatmonth(2025,1) Vi skapar en kalender fรถr รฅr 2025, mรฅnad 1 โ€“ januari
  • Code Rad # 5: print str skriver ut resultatet.

Lรฅt oss snabbt รคndra vรคrdet frรฅn sรถndag till torsdag och kontrollera resultatet

KALENDER in Python

Steg 2) Du kan ocksรฅ skriva ut kalendern i HTML-format, den hรคr funktionen รคr anvรคndbar fรถr utvecklare om de vill gรถra nรฅgra รคndringar i utseendet och kรคnslan av kalendern

KALENDER in Python

Steg 3) Loops under dagarna i en mรฅnad genom att anvรคnda c.itermonthday (2025,4), kommer det att hรคmta det totala antalet dagar fรถr den mรฅnaden.

KALENDER in Python

  • Nรคr du kรถr koden fรถr att fรฅ det totala antalet dagar fรถr en specifik mรฅnad sรคg "april" sรฅ fรฅr du 30 dagar i utdata men du kommer ocksรฅ att se nรฅgra nollor tillsammans med dessa dagar i bรถrjan och ibland i slutet av den .
  • Nollor i utdata betyder att veckodagen รถverlappar varandra.ping mรฅnad, vilket betyder att den inte tillhรถr den mรฅnaden.
  • Dessa nollor visas i utdata eftersom du i din kod har nรคmnt dag (torsdag), sรฅ nรคr du anropar funktionen "c.itermonthdays", bรถrjar den rรคkna dagar frรฅn torsdag och din torsdag kanske inte bรถrjar med datum 1st april kan det vara den 28th eller 29th mars, sรฅ nรคr du kรถr koden bรถrjar den rรคkna dagar frรฅn 28th mars och alla dagar efter det till 1st april. Dessa dagar kommer att rรคknas som noll och i utgรฅngen kommer du att se dessa nollor och detsamma gรคller i slutet av mรฅnaden.
  • Sรฅ fรถrutom datum 1-30 kommer alla datum frรฅn fรถregรฅende och postmรฅnad att visas i utgรฅngen som nollor.

Steg 4) Du kan hรคmta data frรฅn det lokala systemet, som mรฅnader eller vardagar, etc

KALENDER in Python

  • Utdata hรคr visar att vi har skrivit ut mรฅnadens namn frรฅn det lokala systemet. Pรฅ samma sรคtt kan du ocksรฅ hรคmta veckodagarnas namn som visas nedan
  • Utdata kommer att bero pรฅ det lokala systemet, anta att om ditt lokala system รคr nรฅgra andra lรคnder sรฅ kommer det att ge utdata enligt de lokala instรคllningarna i det landet. Hรคr har vi mรฅnader sรฅ det blir ingen skillnad men om det รคr en vecka eller dag sรฅ kommer det sรคkert att skilja sig.

KALENDER in Python

Steg 5) Du kan hรคmta listan รถver den specifika dagen fรถr ett helt รฅr. Till exempel finns det en revisionsdag var fรถrsta Monday av en vecka. Du vill veta datumet fรถr fรถrsta Monday fรถr varje mรฅnad. Du kan anvรคnda den hรคr koden

KALENDER in Python

  • mycal = calendar.monthcalendar(2025, mรฅnad) kommer att skapa kalender fรถr mรฅnaden
  • Stรคll in variablerna vecka1 och vecka2 till den fรถrsta och andra veckan i kalendern
  • Kontrollera om vecka 1 innehรฅller Monday, stรคll in revisionsdag
  • Else satte revisionsdagen som den fรถrsta Monday i vecka 2
  • Utgรฅngen visar datumet fรถr den fรถrsta Monday som infaller i den mรฅnaden.
  • Lรคngden pรฅ detta Cal-objekt kommer att vara en viss lรคngd, baserat pรฅ hur mรฅnga veckor det รคr i mรฅnaden. I vรฅrt fall kommer det att bli en eller tvรฅ som sรฅdan fรถrst Monday veckan kommer oftast att vara under den fรถrsta veckan, men om inte, รถvervรคg den andra veckan. Lรฅt oss se i detalj varfรถr vi ocksรฅ รถvervรคger den andra veckan.
  • Hรคr anvรคnder vi kalenderns konstant Monday, kalenderobjektet ger dig konstanter som representerar sรถndag, Monday, tisdag, sรฅ vidare, sรฅ vidare. Vi har sett dessa tidigare. Sรฅ, om i vecka ett dagen representeras av Monday konstant รคr inte lika med 0, kom ihรฅg att nollor betyder dagar som tillhรถr en annan mรฅnad. Sรฅ i det hรคr fallet, om det รคr noll, kommer det att bli en Monday som tillhรถr fรถregรฅende mรฅnad. Men om den fรถrsta Monday รคr inte lika med 0, det betyder att min revisionsdag kommer att vara inom vecka ett. Annars, om det รคr 0, dรฅ den fรถrsta Monday รคr inte den fรถrsta veckan i mรฅnaden, det mรฅste vara den andra.
  • Sรฅ, dรฅ sรคger jag okej, stรคll in min revisionsdagvariabel till att vara Monday representeras av vecka tvรฅ. Sรฅ, revisionsdagen kommer att komma tillbaka med vad dagen รคn รคr fรถr antingen den fรถrsta eller andra veckan.

Hรคr รคr den fullstรคndiga koden

Python 2 Exempel

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 Exempel

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

Sammanfattning

  • In Python, kan du formatera kalendern som du vill eftersom du kan รคndra dagen i mรฅnaden fรถr att bรถrja
  • Skriv ut kalendern i HTML-format
  • Hรคmta data frรฅn det lokala systemet, som mรฅnader eller vardagar
  • Hรคmta listan รถver den specifika dagen fรถr ett helt รฅr

Sammanfatta detta inlรคgg med: