Python Módulo de calendário com exemplo

⚡ Resumo Inteligente

O módulo de calendário em Python Gera calendários em texto e HTML usando as classes TextCalendar e HTMLCalendar. Realiza cálculos de datas com base no dia, mês e ano, e permite personalizar o dia da semana inicial para qualquer mês.

  • 🔘 Dois tipos de calendário: As classes TextCalendar e HTMLCalendar geram calendários em texto simples e prontos para a web para um mês ou ano escolhido.
  • ☑️ Primeiro dia útil: Constantes como calendar.SUNDAY e o método setfirstweekday() alteram o dia da semana em que cada semana começa.
  • Dias de iteração: O método `itermonthdays()` percorre um mês e marca as sobreposições.ping dias de meses adjacentes como zeros.
  • 🧪 Funções auxiliares: Funções como isleap(), weekday() e monthrange() respondem a perguntas comuns sobre datas sem a necessidade de bibliotecas adicionais.
  • 🛠️ Biblioteca padrão: O módulo de calendário é fornecido com PythonPortanto, não requer instalação antes de ser importado e utilizado.
  • 🤖 Fluxos de trabalho de IA: Os fluxos de trabalho de aprendizado de máquina derivam características de calendário, como indicadores de dia da semana e ano bissexto, para previsão de séries temporais.

Python Módulo de calendário

O módulo de calendário em Python Possui uma classe de calendário que permite cálculos para diversas tarefas com base na data, mês e ano. Além disso, o Calendário de texto e Calendário HTML aulas em Python Permite editar o calendário e usá-lo conforme sua necessidade. Vamos ver o que podemos fazer com ele. Python calendário.

O que é o módulo de calendário em Python?

O módulo de calendário faz parte do Python É uma biblioteca padrão, portanto está disponível sem qualquer instalação. Ela agrupa diversas classes e funções auxiliares que criam calendários e respondem a perguntas comuns sobre datas, como em qual dia da semana uma data cai ou quantos dias tem um mês.

O módulo oferece cinco classes principais:

  • Calendário É uma classe base que fornece os dados a partir dos quais os outros calendários são construídos.
  • Calendário de texto Gera calendários em texto simples para um mês ou um ano inteiro.
  • Calendário HTML Gera calendários como tabelas HTML para páginas web.
  • LocaleTextCalendar É um calendário de texto que usa os nomes dos dias e meses de uma localidade escolhida.
  • LocaleHTMLCalendar é o equivalente em HTML que respeita a localidade escolhida.

Por padrão, uma semana do calendário começa em Monday, seguindo a convenção europeia. Você pode alterar o primeiro dia usando uma constante como calendar.SUNDAY, conforme mostrado nos exemplos abaixo.

Como imprimir um calendário de texto em Python

Passo 1) Execute o código.

Imprima um calendário de texto em Python

  • Code Linha 1: Começamos com “import calendar”, que importará todas as classes deste módulo.
  • Code Linha # 3: c = calendar.TextCalendar(calendar.SUNDAY) instrui o interpretador a criar um calendário de texto. O início do mês será no domingo. PythonVocê pode formatar o calendário como quiser e alterar o dia em que o mês começa.
  • Code Linha # 4: str= c.formatmonth(2025,1) cria um calendário para o ano de 2025, Mês 1 – Janeiro.
  • Code Linha # 5: print str irá imprimir a saída.

Vamos alterar rapidamente o valor de domingo para quinta-feira e verificar o resultado.

Alterar o primeiro dia útil de um Python calendário

Como imprimir um calendário HTML em Python

Passo 2) Você também pode imprimir o calendário em formato HTML. Esse recurso é útil para desenvolvedores que desejam fazer alterações na aparência do calendário.

Imprima um calendário HTML em Python

Como fazer um loop pelos dias de um mês

Passo 3) Loops ao longo dos dias de um mês usando c.itermonthdays (2025,4); ele obterá o número total de dias para esse mês.

Repita o ciclo dos dias de um mês em Python

  • Ao executar o código para obter o número total de dias de um mês específico, digamos "abril", você obterá 30 dias como resultado, mas também verá alguns zeros junto com esses dias no início e, às vezes, no final.
  • Os zeros na saída significam que o dia da semana está em sobreposição.ping mês, o que significa que não pertence a esse mês.
  • Esses zeros aparecem na saída porque, no seu código, você mencionou um dia (quinta-feira). Então, quando você chama a função “c.itermonthdays”, ela começa a contar os dias a partir de quinta-feira, e a sua quinta-feira pode não começar no dia 1º de abril – pode ser no dia 28 ou 29 de março. Portanto, o código começa a contar os dias a partir de 28 de março e todos os dias seguintes até 1º de abril. Esses dias são contados como zeros, e você verá esses zeros na saída. O mesmo se aplica ao final do mês.
  • Assim, com exceção das datas de 1 a 30, todas as datas do mês anterior, bem como do mês seguinte, aparecem na saída como zeros.

Como obter os nomes dos meses e dias da semana do sistema local

Passo 4) Você pode obter dados do sistema local, como meses ou dias da semana.

Obter os nomes dos meses do sistema local em Python

  • O resultado aqui mostra que imprimimos os nomes dos meses do sistema local. Da mesma forma, você também pode obter os nomes dos dias da semana, como mostrado abaixo.
  • A saída depende do sistema local. Se o seu sistema local estiver configurado para outro país, a saída será exibida de acordo com as configurações locais desse país. Aqui, temos meses, então não fará diferença, mas para uma semana ou um dia, certamente será diferente.

Obter os nomes dos dias da semana do sistema local em Python

Como encontrar um dia específico para o ano todo

Passo 5) Você pode obter a lista de um dia específico para um ano inteiro. Por exemplo, há um dia de auditoria em todo primeiro dia de cada mês. Monday de uma semana. Suponha que você queira saber a data da primeira semana. Monday Para cada mês. Você pode usar este código.

Encontre um dia específico para o ano todo em Python

  • mycal = calendar.monthcalendar(2025, month) cria um calendário para o mês.
  • Defina as variáveis ​​semana1 e semana2 para a primeira e a segunda semana do calendário.
  • Verifique se a semana 1 contém Monday e definir o dia da auditoria.
  • Caso contrário, defina o dia da auditoria como o primeiro. Monday na semana 2.
  • A saída mostra a data do primeiro Monday que cai naquele mês.
  • O comprimento deste objeto Cal depende de quantas semanas tem o mês. No nosso caso, é uma ou duas, como no primeiro caso. Monday A semana geralmente é considerada a primeira semana, mas, caso contrário, consideramos a segunda semana. Vejamos em detalhes por que também consideramos a segunda semana.
  • Aqui estamos usando a constante do calendário. MondayO objeto de calendário fornece constantes que representam o domingo. Monday, terça-feira, e assim por diante. Se, na primeira semana, o dia representado pelo Monday A constante não é igual a 0 – lembre-se, zeros representam dias que pertencem a outro mês – então isso Monday pertence a este mês e o dia da auditoria está dentro da primeira semana. Se for 0, então o primeiro Monday Não está na primeira semana do mês, então deve ser na segunda.
  • Nesse caso, definimos a variável do dia da auditoria para o Monday representada pela segunda semana. O dia da auditoria retorna com o dia correspondente à primeira ou à segunda semana.

Automação Python Calendário Code Exemplo

Aqui está o código completo.

Python 2 Exemplo

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 Exemplo

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

Funções úteis no Python Módulo de calendário

Além do passo a passo acima, o módulo de calendário inclui diversas funções úteis que funcionam sem a necessidade de criar uma instância de classe:

  • calendário.calendário(ano) Retorna um calendário anual completo como uma string de várias linhas, enquanto calendário.prcal(ano) imprime diretamente.
  • calendário.mês(ano, mês) retorna um único mês como texto, e calendário.prmês(ano, mês) imprime.
  • calendário.mês calendário(ano, mês) Retorna o mês como uma lista de linhas semanais, onde cada dia é um número inteiro e os dias fora do mês são 0.

Essas funções possibilitam a exibição rápida de calendários em uma única linha, o que é conveniente em scripts e sessões interativas onde você não precisa do controle adicional das classes TextCalendar ou HTMLCalendar.

Como verificar se um ano é bissexto em Python

O módulo de calendário também pode informar se um ano é bissexto, o que é importante porque fevereiro tem 29 dias em vez de 28 nesses anos. Duas funções cuidam disso:

  • calendário.ébissexto(ano) Retorna True quando o ano é bissexto e False caso contrário.
  • calendário.diasleap(y1, y2) Retorna o número de anos bissextos no intervalo de y1 até, mas não incluindo, y2.

Por exemplo, `calendar.isleap(2024)` retorna `True`, enquanto `calendar.isleap(2025)` retorna `False`. A verificação de ano bissexto é útil sempre que você precisa validar datas, agendar eventos recorrentes ou contar o número exato de dias entre dois anos.

Perguntas Frequentes

O módulo de calendário concentra-se na produção e análise de calendários — texto, HTML, números de dias da semana e verificação de anos bissextos. O módulo de data e hora lida com registros de data e hora específicos, aritmética e formatação de datas e horas individuais. Muitos programas importam ambos e os utilizam em conjunto.

Chame calendar.weekday(ano, mês, dia). Retorna um número inteiro de 0 (Monday) a 6 (domingo). Combine-o com calendar.day_name para converter esse número em um rótulo legível, como Monday ou sexta-feira.

Use calendar.monthrange(year, month). Ele retorna uma tupla cujo segundo valor é a contagem de dias, então calendar.monthrange(2025, 2)[1] retorna 28. O primeiro valor é o dia da semana do primeiro dia daquele mês.

Use `calendar.LocaleTextCalendar` ou `calendar.LocaleHTMLCalendar` e passe uma localidade como "fr_FR". O mês formatado exibirá os nomes dos dias da semana e dos meses nesse idioma, desde que a localidade esteja instalada no sistema operacional.

Gere a marcação com HTMLCalendar().formatmonth(2025, 1), depois abra um arquivo em modo de escrita e chame write() com essa string. Salvar com a extensão .html permite que qualquer navegador exiba o calendário formatado.

Por padrão, a semana começa em Monday, seguindo a convenção europeia. Chame calendar.setfirstweekday(calendar.SUNDAY), ou passe uma constante como calendar.SUNDAY para um TextCalendar, para fazer com que a semana comece em outro dia.

Os fluxos de dados utilizam funções de calendário para derivar características como dia da semana, número da semana e indicadores de ano bissexto a partir de datas brutas. Essas características de calendário, projetadas para esse fim, ajudam os modelos de aprendizado de máquina a capturar padrões semanais e sazonais na previsão de séries temporais.

Sim. O GitHub Copilot e assistentes de IA com agentes podem escrever trechos de código para módulos de calendário — como imprimir meses, verificar anos bissextos ou criar um calendário HTML — a partir de um breve comentário. RevVeja o resultado, pois a indexação por dia da semana e as configurações do primeiro dia são fáceis de confundir.

Resuma esta postagem com: