Jump to content

Como calcular dias faltantes para o próximo aniversário usando JavaScript?


HelioEduardoMonteiro

Postagens Recomendadas

Estou com dúvida em um algoritmo JavaScript.

Minha dúvida é como pegar a data de entrada (dia, mês e ano) e calcular a simulação de um calendário para saber quantos dias faltam para o próximo aniversário. Obrigado, aguardo ansioso.

function Calc() {
    let meses = new Array("Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro");
    let dayName = new Array("domingo", "segunda", "terça", "quarta", "quinta", "sexta", "sábado");
    let agora = new Date();

    let Janeiro = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31];
    let Fevereiro = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28];
    let Fevereiro2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29];
    let Março = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31];
    let Abril = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30];
    let Maio = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30];
    let Junho = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31];
    let Julho = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31];
    let Agosto = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31];
    let Setembro = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30];
    let Outubro = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31];
    let Novembro = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30];
    let Dezembro = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31];

    let DiasDoAno = 365;
    let Ano_completo = Janeiro.concat(Fevereiro, Março, Abril, Maio, Junho, Julho, Agosto, Setembro, Outubro, Novembro, Dezembro);

    let month = agora.getMonth(); // 0 | Fev = 1 | Mar = 2 e assim vai...
    let day = agora.getDate();
    let year = agora.getFullYear();
    let resp = document.getElementById('saida');

    let dia = Number(window.prompt('Em que dia você nasceu? '));
    let mes = Number(window.prompt('Em que mês você nasceu? '));
    let ano = Number(window.prompt('Em que ano você nasceu? '));
    let idade = year - ano;

    let ano1 = [];
    let anos_bissextos = [];
    let Total_dias = 0; // total de dias até esse dia
    let dias_faltam_aniversario = 0;

    let mes_falta = mes - month;
    let dias_falta = dia - day;
    let ano_falta = year - ano;

    function _numDias() {
        var objData = new Date(),
            numAno = objData.getFullYear(),
            numMes = objData.getMonth() + 1,
            numDias = new Date(numAno, numMes, 0).getDate();

        return numDias;
    }

    console.log(_numDias());

    for (let i = 0; i <= idade; i++) {
        ano1.push(ano + i);
        Total_dias = DiasDoAno * idade;
    }

    console.log(Ano_completo, mes_falta, dias_falta, ano_falta);

    for (let i = 0; i < idade; i++) {
        if (ano1[i] % 100 != 0 && ano1[i] % 4 == 0 || ano1[i] % 400 == 0) {
            anos_bissextos.push(ano1[i]);
            Total_dias = Total_dias + 1;
        }
    }

    console.log(Total_dias);

    resp.innerHTML = `Um ano tem ${DiasDoAno} dias. Hoje é dia ${day}, ou seja, uma ${dayName[agora.getDay()]} do mês de ${meses[month]} do ano de ${year}. Sua idade é ${idade} e o número de anos bissextos é ${anos_bissextos.length}. Os anos bissextos são ${anos_bissextos.join(", ")}. O total de dias é ${Total_dias}.`;

    // se é ano bissexto
    // resp.innerHTML = `Chegamos à conclusão que faltam ${dias_falta} dias e ${mes_falta} meses para completar ${idade} anos. Seu aniversário vai ser dia ${dia} do mês ${mes} no ano de ${year}. Atualmente você

 

  • Curtir 1
Link to comment
Compartilhe em outros sites

  • Casa do Desenvolvedor mudou o título para Como calcular dias faltantes para o próximo aniversário usando JavaScript?

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...