Python CALENDARIO Tutorial con esempio

Modulo calendario in Python ha la classe calendario che consente i calcoli per varie attività in base a data, mese e anno. Inoltre, le classi TextCalendar e HTMLCalendar in Python ti consente di modificare il calendario e utilizzarlo secondo le tue esigenze.

Vediamo cosa possiamo fare con Python Calendario.

Passo 1) Esegui il codice.

CALENDARIO in Python

  • Riga di codice n. 1: Iniziamo con “import calendar” che importerà tutte le classi di questo modulo.
  • Riga di codice n. 3: c= calendar.TextCalendar(calendar.SUNDAY) dice all'interprete di creare un calendario di testo. L'inizio del mese sarà domenica. In Python, puoi formattare il calendario così come puoi cambiare il giorno del mese da cui iniziare
  • Riga di codice n. 4: str= c.formatmonth(2025,1) Stiamo creando il calendario per l'anno 2025, mese 1 – gennaio
  • Riga di codice n. 5: print str stamperà l'output.

Cambiamo rapidamente il valore da domenica a giovedì e controlliamo l'output

CALENDARIO in Python

Passo 2) Puoi anche stampare il calendario in formato HTML, questa funzione è utile per gli sviluppatori se desiderano apportare modifiche all'aspetto del calendario

CALENDARIO in Python

Passo 3) Loops nel corso dei giorni di un mese utilizzando c.itermonthday (2025,4), verrà recuperato il numero totale di giorni per quel mese.

CALENDARIO in Python

  • Quando esegui il codice per ottenere il numero totale di giorni per un mese specifico, dì "aprile", otterrai 30 giorni nell'output ma vedrai anche alcuni zeri insieme a questi giorni all'inizio e talvolta alla fine .
  • Gli zeri nell'output indicano che il giorno della settimana si trova in un mese sovrapposto, ovvero non appartiene a quel mese.
  • Questi zeri appaiono nell'output perché, nel tuo codice hai menzionato il giorno (giovedì), quindi quando chiami la funzione "c.itermonthdays", inizierà a contare i giorni da giovedì e il tuo giovedì potrebbe non iniziare con la data 1st di aprile potrebbe essere il 28th o 29th di marzo, quindi quando eseguirai il codice inizierà a contare i giorni da 28th di marzo e tutti i giorni successivi fino al 1st di aprile. Questi giorni verranno conteggiati come zero e nell'output vedrai questi zeri e lo stesso vale per la fine del mese.
  • Quindi, ad eccezione della data 1-30, tutte le date del mese precedente e successivo verranno visualizzate nell'output come zeri.

Passo 4) Puoi recuperare i dati dal sistema locale, come mesi o giorni feriali, ecc

CALENDARIO in Python

  • L'output qui sopra mostra che abbiamo stampato il nome del mese dal sistema locale. Allo stesso modo, puoi anche recuperare il nome dei giorni della settimana come mostrato di seguito
  • L'output dipenderà dal sistema locale, supponiamo che se il tuo sistema locale sia un altro paese, fornirà l'output secondo le impostazioni locali di quel paese. Qui abbiamo mesi quindi non farà differenza, ma se si tratta di una settimana o di un giorno, sarà sicuramente diverso.

CALENDARIO in Python

Passo 5) Puoi recuperare l'elenco del giorno specifico per un anno intero. Ad esempio, ogni primo giorno è previsto un giorno di audit Monday di una settimana. Vuoi sapere la data del primo Monday per ogni mese. Puoi usare questo codice

CALENDARIO in Python

  • mycal = calendar.monthcalendar(2025, mese) creerà il calendario per il mese
  • Imposta le variabili week1 e week2 sulla prima e sulla seconda settimana del calendario
  • Controlla se la settimana 1 contiene Monday, imposta il giorno dell'audit
  • Altrimenti imposta il giorno di audit come primo Monday nella settimana 2
  • L'output mostra la data del primo Monday che cade in quel mese.
  • La lunghezza di questo oggetto Cal sarà una certa lunghezza, in base al numero di settimane presenti nel mese. Nel nostro caso, saranno prima uno o due Monday della settimana sarà nella prima settimana più spesso, ma in caso contrario considera la seconda settimana. Vediamo nel dettaglio perché consideriamo anche la seconda settimana.
  • Qui stiamo usando la costante del calendario Monday, l'oggetto calendario fornisce costanti che rappresentano domenica, Monday, Martedì, e così via. Li abbiamo visti in precedenza. Quindi, se nella prima settimana il giorno rappresentato dal Monday la costante non è uguale a 0, ricorda che gli zeri indicano i giorni che appartengono a un altro mese. Quindi, in questo caso, se è zero, sarà a Monday che appartiene al mese precedente. Ma se il primo Monday non è uguale a 0, significa che il mio giorno di verifica sarà entro la settimana uno. Altrimenti, se è 0, allora il primo Monday non è nella prima settimana del mese, deve essere nella seconda.
  • Quindi, allora dico ok, imposta la mia variabile del giorno di audit su Monday rappresentato dalla seconda settimana. Quindi, il giorno dell'audit tornerà con qualunque sia il giorno della prima o della seconda settimana.

Ecco il codice completo

Python 2 Esempio

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 Esempio

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

Sintesi

  • In Python, puoi formattare il calendario nel modo desiderato poiché puoi cambiare il giorno del mese in cui iniziare
  • Stampa il Calendario in formato HTML
  • Recupera i dati dal sistema locale, come mesi o giorni feriali
  • Recupera l'elenco del giorno specifico per un anno intero