Convertendo Segundos em Horas Usando Bash

Publicado por Mauricio Ferrari em 23/06/2021

[ Hits: 4.731 ]

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

Formas de Obter as Dimensões do Emulador Terminal

Player Nulloy no Ubuntu 20.04, Linux Mint 20 e derivações mais atuais - atualização

Renomeando em massa sem precisar instalar comandos adicionais

Melhor Controle de Memória de Strings em C

Desbloquear Pendrive Protegido Contra Gravação

Leitura recomendada

Nome de arquivo com espaço dentro de variáveis

Compilar programas com muitos parâmetros

Truques para tratamento de variáveis em shell script

Operações matemáticas diretamente pelo bash

Verificar saída de comando. Será que meu comando deu erro?

  

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