Tutorial Python CALENDAR com Exemplo
O módulo Calendar em Python possui a classe calendar que permite os cálculos para várias tarefas com base em data, mês e ano. Além disso, a classe TextCalendar e HTMLCalendar em Python permite que você edite o calendário e use conforme sua necessidade.
Vamos ver o que podemos fazer com o Python Calendar.
Etapa 1) Execute o código.
- Linha de código nº 1:começamos com “import calendar” que importará todas as classes deste módulo.
- Linha de código nº 3:c=calendar.TextCalendar(calendar.SUNDAY) informa ao intérprete para criar um calendário de texto. O início do mês será domingo. Em Python, você pode formatar o calendário, pois pode alterar o dia do mês para começar
- Linha de código nº 4:str=c.formatmonth(2025,1) Estamos criando um calendário para o ano de 2025, mês 1 a janeiro
- Linha de código # 5:print str imprimirá a saída.
Vamos alterar rapidamente o valor de domingo para quinta e verificar a saída
Etapa 2) Você também pode imprimir o calendário em formato HTML, esse recurso é útil para o desenvolvedor se eles quiserem fazer alterações na aparência do calendário
Etapa 3) Faz um loop nos dias de um mês usando c.itermonthday (2025,4), ele buscará o número total de dias desse mês.
- Quando você executa o código para obter o número total de dias para um mês específico, diga "abril", então você obterá 30 dias na saída, mas também verá alguns zeros junto com esses dias no início e às vezes no fim.
- Zeros na saída significam que o dia da semana está em um mês sobreposto, o que significa que não pertence a esse mês.
- Esses zeros aparecem na saída porque, no seu código você mencionou o dia (quinta-feira), então quando você chamar a função “c.itermonthdays”, ela começará a contar os dias a partir de quinta-feira e sua quinta-feira pode não começar com a data 1 st de abril pode ser dia 28 ou 29 º de março, então, quando você executar o código, ele começará a contar os dias a partir de 28 de março e quaisquer dias depois disso até 1 st de abril. Esses dias serão contados como zero e na saída você verá esses zeros e o mesmo se aplica ao final do mês.
- Assim, exceto as datas de 1 a 30, todas as datas do mês anterior e posterior aparecerão na saída como zeros.
Etapa 4) Você pode buscar os dados do sistema local, como meses ou dias da semana, etc.
- A saída aqui mostra que imprimimos o nome dos meses do sistema local. Da mesma forma, você também pode buscar o nome dos dias da semana conforme mostrado abaixo
- A saída dependerá do sistema local, suponha que se o seu sistema local for de outros países, ele fornecerá a saída de acordo com as configurações locais desse país. Aqui temos meses, então não será uma diferença, mas se for uma semana ou um dia, certamente será diferente.
Etapa 5) Você pode buscar a lista do dia específico para um ano inteiro. Por exemplo, há um dia de auditoria em toda primeira segunda-feira de uma semana. Você quer saber a data da primeira segunda-feira de cada mês. Você pode usar este código
- mycal =calendar.monthcalendar(2025, mês) criará um calendário para o mês
- Defina as variáveis week1 e week2 para a primeira e a segunda semana do calendário
- Verifique se a Semana 1 contém segunda-feira, defina o dia da auditoria
- Além disso, defina o dia da auditoria como a primeira segunda-feira da semana 2
- A saída mostra a data da primeira segunda-feira desse mês.
- A duração deste objeto Cal terá uma certa duração, com base em quantas semanas há no mês. No nosso caso, será um ou dois, pois a primeira segunda-feira da semana será na primeira semana com mais frequência, mas se não, considere a segunda semana. Vamos ver em detalhes por que também consideramos a segunda semana.
- Aqui estamos usando a constante segunda-feira do calendário, o objeto calendário fornece constantes que representam domingo, segunda-feira, terça-feira e assim por diante. Já vimos isso anteriormente. Portanto, se na primeira semana o dia representado pela constante de segunda-feira não for igual a 0, lembre-se de que zeros significam dias que pertencem a outro mês. Então, neste caso, se for zero, será uma segunda-feira que pertence ao mês anterior. Mas se a primeira segunda-feira não for igual a 0, isso significa que meu dia de auditoria será dentro da primeira semana. Caso contrário, se for 0, a primeira segunda-feira não será na primeira semana do mês, será na segunda.
- Então, concordo, defina minha variável de dia de auditoria para ser a segunda-feira representada pela segunda semana. Portanto, o dia da auditoria retornará com o dia da primeira ou da segunda semana.
Aqui está o código completo
Exemplo do Python 2
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)
Exemplo do Python 3
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))
Resumo:
- No Python, você pode formatar o calendário da maneira que quiser, pois pode alterar o dia do mês para começar
- Imprima o Calendário em formato HTML
- Busque os dados do sistema local, como meses ou dias da semana
- Pegue a lista do dia específico de um ano inteiro
python
- Tutorial de classe abstrata C# com exemplo:O que é abstração?
- Função Python String strip () com EXEMPLO
- Python String count() com EXEMPLOS
- Função Python round() com EXEMPLOS
- Função Python map() com EXEMPLOS
- Python Timeit() com exemplos
- Yield in Python Tutorial:Generator &Yield vs Return Example
- Contador Python em coleções com exemplo
- Python List count() com EXEMPLOS
- Python List index() com exemplo