Convertendo Segundos em Horas Usando Bash

Publicado por Mauricio Ferrari em 23/06/2021

[ Hits: 4.162 ]

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

Exibindo o nome completo dos pacotes instalados no Debian e derivados

Usando Vídeo Wallpaper no KDE

Telegram no Debian, Ubuntu, Linux Mint e demais variações

Criando Atalhos para Diretórios Ocultos no Linux

Avidemux QT5 no Ubuntu 20.04

Leitura recomendada

Operações matemáticas diretamente pelo bash

Site com várias dicas de ajuda para shell script

Arrays no BASH

Como lidar com variáveis retornadas pelo Expect - removendo CR do fim de linha

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