No internet connection
  1. Home
  2. Dúvidas Gerais

1019 BeeCrowd - Conversão de tempo

Por Ligia Paranhos Alcanfor Rosa @ligiarosa
    2023-11-01 19:00:59.268Z

    Alguém poderia me dizer onde está o erro nessa questão? Deve-se usar o .toFixed?

    let N = parseInt(lines.shift());
    
    let horas = Math.floor(N / 3600);
    let minutos = Math.floor(N % 3600)/60;
    let segundos = Math.floor ((N % 3600) % 60) / 60;
    
    console.log(`${horas}:${minutos}:${segundos}`)
    
    • 6 respostas
    1. C
      Camila Vieira @CamilaVieira
        2023-11-01 21:15:53.532Z

        Oi, Ligia. Você não precisa dividir por 60 de novo nos segundos. O que sobrar já é os segundos. Então basta colocar

        ((N % 3600) % 60)
        

        Outra coisa que está dando errado eh o arredondamento, Você precisa usar o Math.round() dentro do Math.floor() também

        Math.floor(Math.round(N / 3600))
        

        Acredito que depois disso deva funcionar. Espero ter ajudado.

        1. Valeu, não sabia como usar exatamente essa função Math.floor e Math.round, vou testando elas aqui.

        2. Em resposta aligiarosa:
          Christian Amsberg Janner @calemao
            2023-11-01 22:44:10.482Z

            Não há necessidade de se usar o toFixed, é interessante nas contas matematicas voce trocar o "parseInt" para Math.floor

            Explicação de como funciona o Math.floor: Em JavaScript, Math.floor é uma função que arredonda um número para o inteiro mais próximo menor ou igual, removendo a parte decimal. Por exemplo, Math.floor(7.8) resulta em 7, independentemente se o número é positivo ou negativo. É útil quando você precisa trabalhar com números inteiros ou realizar arredondamentos para baixo em cálculos.

            Qualquer dúvida só perguntar aqui

            1. Obrigada pela explicação !

            2. A
              Em resposta aligiarosa:
              Alan Eduardo da Cruz @alanEduardo
                2023-11-01 21:12:06.266Z2023-11-01 21:24:56.567Z

                Ligia, tudo bem?

                Da uma olhadinha aqui

                let N =  parseInt(lines.shift());  // Valor total que será recebido em segundos
                
                // Converte segundos para horas
                let horas = parseInt(N / 3600);
                N = N % 3600; // Calcula os segundos restantes após a conversão para horas
                
                // Converte os segundos restantes em minutos
                let minutos = parseInt(N / 60);
                N = N % 60; // Calcula os segundos restantes após a conversão para minutos
                
                // Exibe o resultado no formato "horas:minutos:segundos"
                console.log(`${horas}:${minutos}:${N}`);
                

                Espero ter ajudado.

                1. Muito obrigada, ajudou bastante, eu já havia tentado de tudo...