Elabore um programa que calcule a quantidade de dias existentes entre duas datas. Dica: utilize as variáveis D1, M1, A1, D2, M2, A2. Por hipótese, as variáveis dos anos não precisam considerar a correção do calendário gregoriano. Lembre-se que há regras especiais de anos bissextos conforme o ano específico.
Passo 1
Beleza, vamos lá! O exercício pede para a gente criar um programa que calcula a quantidade de dias entre duas datas. Estamos trabalhando com lógica de programação e manipulação de datas. Vamos precisar usar as variáveis D1, M1, A1 (dia, mês e ano da primeira data) e D2, M2, A2 (dia, mês e ano da segunda data). Além disso, temos que considerar os anos bissextos para contar os dias corretamente.
Passo 2
Primeiro, precisamos entender como calcular os dias em cada mês. Os meses têm diferentes números de dias: janeiro tem 31, fevereiro 28 (ou 29 se for bissexto), março 31, e assim por diante. Vamos criar uma lista que armazena o número de dias em cada mês.
Passo 3
Agora, vamos verificar se um ano é bissexto. Um ano é bissexto se for divisível por 4, mas não por 100, a menos que também seja divisível por 400. Isso significa que 2000 foi bissexto, mas 1900 não foi.
Passo 4
Com isso, vamos calcular quantos dias existem desde o início do ano da primeira data até essa data. Isso inclui somar os dias dos meses anteriores e adicionar o dia atual.
Passo 5
Faz o mesmo para a segunda data: calcula quantos dias existem desde o início do ano da segunda data até essa data.
Passo 6
Agora, precisamos calcular a quantidade completa de dias entre os dois anos. Isso inclui somar todos os dias completos dos anos que estão entre A1 e A2.
Passo 7
Finalmente, somamos os dias calculados das duas datas e os dias completos dos anos entre elas. A diferença total será a quantidade de dias entre as duas datas.
Resposta
Aqui está um exemplo de como isso pode ser implementado em Python:
def is_bissexto(ano):
if (ano % 4 == 0 and ano % 100 != 0) or (ano % 400 == 0):
return True
return False
def dias_no_mes(mes, ano):
meses = [31, 28, 31, 30, 31, 30,
31, 31, 30, 31, 30, 31]
if mes == 2 and is_bissexto(ano):
return 29
return meses[mes-1]
def dias_ate_data(d, m, a):
total = 0
for ano in range(1, a):
total += 366 if is_bissexto(ano) else 365
for mes in range(1, m):
total += dias_no_mes(mes, a)
total += d
return total
# Exemplo de uso:
D1, M1, A1 = 1, 1, 2020
D2, M2, A2 = 1, 1, 2021
dias_total = dias_ate_data(D2, M2, A2) - dias_ate_data(D1, M1, A1)
print(f"A quantidade de dias entre as duas datas é: {dias_total}")
Este programa calcula a quantidade de dias entre duas datas considerando os anos bissextos. Substitua os valores de
D1, M1, A1
e D2, M2, A2
pelas datas que você deseja calcular.