📢 Nuovo Corso Laravel API disponibile!

Esercizi Data e Ora Python

Ecco degli esercizi semplici con soluzione per praticare l’utilizzo di Datetime (data e ora) in Python.

Esercizio 1

Scrivi un programma che stampa la data e l'ora corrente.
import datetime
now = datetime.datetime.now()
print("Data e ora corrente:", now)

Esercizio 2

Scrivi un programma che prende in input una data in formato "gg/mm/aaaa" e stampa il nome del mese corrispondente.
import datetime
data = input("Inserisci una data (gg/mm/aaaa): ")
data = datetime.datetime.strptime(data, "%d/%m/%Y")
nome_mese = data.strftime("%B")
print("Il nome del mese corrispondente è:", nome_mese)

Esercizio 3

Scrivi un programma che prende in input due date e calcola la differenza in giorni tra le due.
import datetime
data1 = input("Inserisci la prima data (gg/mm/aaaa): ")
data2 = input("Inserisci la seconda data (gg/mm/aaaa): ")
data1 = datetime.datetime.strptime(data1, "%d/%m/%Y")
data2 = datetime.datetime.strptime(data2, "%d/%m/%Y")
diff = abs(data2 - data1).days
print("La differenza in giorni tra le due date è:", diff)

Esercizio 4

Scrivi un programma che prende in input una data e un numero di giorni, e calcola la data che viene dopo quella data del numero di giorni specificato.
import datetime
data = input("Inserisci una data (gg/mm/aaaa): ")
num_giorni = int(input("Inserisci il numero di giorni: "))
data = datetime.datetime.strptime(data, "%d/%m/%Y")
nuova_data = data + datetime.timedelta(days=num_giorni)
print("La nuova data è:", nuova_data.strftime("%d/%m/%Y"))

Esercizio 5

Scrivi un programma che stampa tutti i giorni di un determinato mese e anno.
import calendar
anno = int(input("Inserisci l'anno: "))
mese = int(input("Inserisci il mese (1-12): "))
cal = calendar.monthcalendar(anno, mese)
for settimana in cal:
for giorno in settimana:
if giorno != 0:
print(giorno)

Esercizio 6

Scrivi un programma che prende in input una data in formato "gg/mm/aaaa" e verifica se l'anno è bisestile o meno.
import datetime
data = input("Inserisci una data (gg/mm/aaaa): ")
data = datetime.datetime.strptime(data, "%d/%m/%Y")
if calendar.isleap(data.year):
print("L'anno è bisestile.")
else:
print("L'anno non è bisestile.")

Esercizio 7

Scrivi un programma che prende in input due date e stampa tutte le date comprese tra le due (inclusi i bordi).
import datetime
data1 = input("Inserisci la prima data (gg/mm/aaaa): ")
data2 = input("Inserisci la seconda data (gg/mm/aaaa): ")
data1 = datetime.datetime.strptime(data1, "%d/%m/%Y")
data2 = datetime.datetime.strptime(data2, "%d/%m/%Y")
delta = datetime.timedelta(days=1)
while data1 <= data2:
print(data1.strftime("%d/%m/%Y"))
data1 += delta

Esercizio 8

Scrivi una funzione che prenda in input due date come oggetti datetime e restituisca il numero di giorni trascorsi tra di esse.
from datetime import datetime
def giorni_trascorsi(date1, date2):
diff = date2 - date1
return diff.days
data1 = datetime(2022, 5, 1)
data2 = datetime(2022, 5, 10)
print(giorni_trascorsi(data1, data2)) # output: 9

Esercizio 9

Scrivi una funzione che prenda in input una data come oggetto datetime e restituisca il giorno della settimana corrispondente come stringa.
from datetime import datetime
def giorno_settimana(data):
giorni_settimana = ['lunedì', 'martedì', 'mercoledì', 'giovedì', 'venerdì', 'sabato', 'domenica']
giorno = giorni_settimana[data.weekday()]
return giorno
data = datetime(2022, 5, 1)
print(giorno_settimana(data)) # output: domenica

Esercizio 10

Scrivi una funzione che prenda in input una data come oggetto datetime e restituisca il numero della settimana corrispondente nell'anno.
from datetime import datetime
def settimana_anno(data):
anno, num_settimana, _ = data.isocalendar()
return f"Anno {anno}, settimana {num_settimana}"
data = datetime(2022, 5, 1)
print(settimana_anno(data)) # output: Anno 2022, settimana 17