Fazer uma função que recebe um mês e um ano como parâmetros e retorna o número de dias daquele mês daquele ano. Dica: um ano é bissexto quando é múltiplo de 4 e não múltiplo de 100, ou também quando é múltiplo de 400 .
Passo 1
Beleza, então a ideia é: criar uma função que receba dois parâmetros, mês e ano, e devolva quantos dias aquele mês tem naquele ano. O assunto aqui é lógica de programação básica, especialmente estruturas condicionais (if/else) e a regra de ano bissexto. Para resolver a gente vai precisar:
- Saber quais meses têm 30 dias e quais têm 31.
- Tratar fevereiro (que muda entre 28 e 29 dias dependendo se o ano é bissexto).
- Entender como testar “divisibilidade” usando o operador módulo (
).
Passo 2
Primeiro, lembrando a teoria dos meses:
- Meses com 31 dias: janeiro (1), março (3), maio (5), julho (7), agosto (8), outubro (10), dezembro (12).
- Meses com 30 dias: abril (4), junho (6), setembro (9), novembro (11).
- Fevereiro (2) tem 28 ou 29.
Em código a gente vai agrupar esses grupos e, se o mês for fevereiro, cai num tratamento especial.
Passo 3
Agora, a parte de ano bissexto. Regra:
- Ano múltiplo de 4:
- Exceto se for múltiplo de 100:
a não ser que também seja múltiplo de 400: .
Ou seja, em fórmula lógica:
Se isso der true, fevereiro tem 29 dias; senão, 28.
Passo 4
Bora montar a função em pseudocódigo (estilo Python, mas serve de guia pra qualquer linguagem):
def dias_no_mes(mes, ano):
# 1) Verifica meses de 31 dias
if mes in [1, 3, 5, 7, 8, 10, 12]:
return 31
# 2) Verifica meses de 30 dias
elif mes in [4, 6, 9, 11]:
return 30
# 3) Se for fevereiro, checa bissexto
elif mes == 2:
eh_bissexto = ((ano % 4 == 0 and ano % 100 != 0) or (ano % 400 == 0))
if eh_bissexto:
return 29
else:
return 28
# 4) Caso o mês seja inválido
else:
return "Mês inválido"
Explicando rapidinho:
- Usamos
mes in [...]
só pra simplificar a checagem de grupos. - Para fevereiro, criamos a variável
eh_bissexto
aplicando a fórmula que vimos. - No final, cobrimos também o caso de mês inválido (por via das dúvidas).
Resposta
A função acima retorna o número de dias corretos de cada mês em qualquer ano, incluindo o tratamento de anos bissextos segundo a regra:
Fácil, né? É só seguir o passo a passo!