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.

Exercícios relacionados