Convertendo Segundos em Horas Usando Bash

Publicado por Mauricio Ferrari em 23/06/2021

[ Hits: 4.021 ]

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

 


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

Efetuando cálculo de Aspect Ratio de vídeos em C/C++

Desligar e Reiniciar o Linux pelo Terminal - Todas as Formas Possíveis

Instalando o Java 14 no Ubuntu, Linux Mint e Debian

A barra de tarefas ficou toda preta [Resolvido]

EasyMP3Gain no Debian, Ubuntu e derivados

Leitura recomendada

Iniciando Script com o Sistema - Configuração no Debian Wheezy

Site para montar regras de iptables

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

Exportar variáveis de um script no mesmo sub-shell

Números aleatórios em shell script

  

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