Convertendo Segundos em Horas Usando Bash

Publicado por Mauricio Ferrari (LinuxProativo) em 23/06/2021

[ Hits: 5.052 ]

Blog: https://www.youtube.com/@LinuxProativo

 


Convertendo Segundos em Horas Usando Bash



Essa é uma opção rápida para quem precisa converter segundos em horas. Logicamente, existem vários métodos para se fazer isso, eu preferi fazer a conversão de forma sequencial.

Primeiramente, vamos considerar que:
  • 1 minuto = 60 segundos
  • 1 hora = 3600 segundos

A partir disso, vamos fazer as contas. Vamos elaborar um pequeno script que vai fazer a conversão:

#!/bin/bash

PARM=$1

HOURS=$(( $PARM / 3600 ))
MINUTES=$(( ($PARM - $HOURS * 3600) / 60 ))
SECONDS=$(( $PARM % 60 ))

echo -e "Resultado: ${HOURS}h:${MINUTES}m:${SECONDS}s."

Por exemplo, se você entrar com o valor 5430 o resultado será 1h:30m:30s. Veja os demais exemplos:
Linux: Convertendo Segundos em Horas Usando Bash
Até a próxima.

Outras dicas deste autor

Comando CLS do Windows no Linux

Gerenciador de Arquivos no Modo ROOT

Digitar comandos no terminal em várias linhas

Instalando corretamente o Wine atualizado no Debian, Ubuntu, Linux Mint e derivados

Resetando as configurações do mate-terminal

Leitura recomendada

Endereço IP como variável

Declarando constantes em shell scripts

Compilar programas com muitos parâmetros

Economize energia, um bem precioso

Atendimento ou suporte remoto em estações de trabalho via VNC

  

Comentários
[1] Comentário enviado por mario-bugre.vol em 27/06/2021 - 20:13h


read H;echo $(($H*1*60*60))

[2] Comentário enviado por maurixnovatrento em 29/06/2021 - 13:00h


[1] Comentário enviado por mario-bugre.vol em 27/06/2021 - 20:13h


read H;echo $(($H*1*60*60))


isso seria para converter horas em segundos. Certo?

Pode ser bastante útil para alguém. É um bom complemento.

[3] Comentário enviado por msoliver em 05/07/2022 - 15:29h

Que lógica é essa!!!
read H;echo $(($H*1*60*60))
Além de não converter segundos em horas,
multiplicar por "1", sinceramente , não entendi....
Ao Menos simplifique a expressão:
read H;
echo $(($H*3600)) #Horas p/ Segundos.
e explique o propósito, como feito pelo colega
mauricio123
______________________________________________________________________
Fica a dica:
read -p "Informe os Segundos: " seg ;
printf "HH:MM:SS %()T\n" $((10800+seg))
Ou
date -ud"@$seg" +%X

______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________

[4] Comentário enviado por maurixnovatrento em 18/07/2022 - 13:03h


[3] Comentário enviado por msoliver em 05/07/2022 - 15:29h

Que lógica é essa!!!
read H;echo $(($H*1*60*60))
Além de não converter segundos em horas,
multiplicar por "1", sinceramente , não entendi....
Ao Menos simplifique a expressão:
read H;
echo $(($H*3600)) #Horas p/ Segundos.
e explique o propósito, como feito pelo colega
mauricio123
______________________________________________________________________
Fica a dica:
read -p "Informe os Segundos: " seg ;
printf "HH:MM:SS %()T\n" $((10800+seg))
Ou
date -ud"@$seg" +%X

______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________



Valeu pelas dicas. O bom do shell é que se tem várias maneiras de se fazer a mesma coisa.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts