Pular para o conteúdo

Convertendo Segundos em Horas Usando Bash

Dica publicada em Shell Script / Variáveis
Mauricio Ferrari (LinuxProativo) maurixnovatrento
Hits: 5.133 Categoria: Shell Script Subcategoria: Variáveis
  • Indicar
  • Impressora
  • Denunciar

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.

Instalando o BootUp Manager (BUM) no Ubuntu 20.04 e Linux Mint 20

makepkg - ERROR: Can't make output package in current directory [Resolvido]

Três Formas Fáceis de usar Super Usuário pelo Terminal no Linux

Métodos para a Limpeza do Terminal do Linux em C

Frescuradas no Interpretador de Comandos do Terminal no Linux

Shell Script - Imprimindo nome da própria função em execução

Trabalhando com parâmetros em Shell Script

Site para montar regras de iptables

Números aleatórios em shell script

Usando variáveis para alterar arquivos com sed, *grep e outros

#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

Entre na sua conta para comentar.