Automatizar a geração de calendários a partir de datas específicas pode economizar horas de trabalho manual e evitar erros. Com um script Python, você pode transformar uma lista de datas em um calendário completo e personalizado em segundos.
Para manipular datas e gerar calendários, precisaremos das bibliotecas datetime e calendar, que já vêm com o Python.
import datetime
import calendar
Crie uma função que receba uma data e retorne um calendário formatado para aquele mês.
def gerar_calendario(ano, mes):
# Criar o calendário
cal = calendar.TextCalendar(calendar.SUNDAY)
# Gerar o calendário para o mês e ano especificados
calendario = cal.formatmonth(ano, mes)
return calendario
Para gerar calendários a partir de uma lista de datas, crie uma função que itere sobre as datas e chame a função anterior.
def gerar_calendarios_a_partir_de_datas(lista_datas):
calendarios = []
for data_str in lista_datas:
# Converter string para objeto datetime
data = datetime.datetime.strptime(data_str, "%Y-%m-%d")
# Gerar calendário para o mês da data
calendario = gerar_calendario(data.year, data.month)
calendarios.append({
"data": data_str,
"calendario": calendario
})
return calendarios
Agora, teste o script com uma lista de datas de exemplo.
if __name__ == "__main__":
# Lista de datas de exemplo
datas = ["2024-05-15", "2024-12-25", "2023-01-01"]
# Gerar calendários
result = gerar_calendarios_a_partir_de_datas(datas)
# Imprimir resultados
for item in result:
print(f"Data: {item['data']}")
print(item['calendario'])
print("-" * 30)
| Entrada (Data) | Saída (Calendário) |
|---|---|
| 2024-05-15 |
Maio 2024
dom seg ter qua qui sex sab
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
|
| 2024-12-25 |
Dezembro 2024
dom seg ter qua qui sex sab
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
|
Com este script Python, você pode gerar calendários completos a partir de qualquer lista de datas em segundos. A automação elimina a necessidade de criar calendários manualmente, garantindo precisão e economizando tempo valioso no seu dia a dia.