Pular para o conteúdo

Algoritmo para converter minutos em hora

Dica publicada em Shell Script / Introdução
Wagner Souza wagnerfs
Hits: 10.416 Categoria: Shell Script Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Algoritmo para converter minutos em hora

Dando continuidade ao meu artigo sobre Algoritmos em Shell Script, segue mais um bom exemplo de como utilizar as ferramentas desse ambiente para o aprendizado desta importante linguagem de script.

#!/bin/bash
#Autor: Wagner Souza
#Data: 15/01/2015
#Funcao: Algoritmo que converte minutos em horas

echo -n "Informe um valor em minutos a serem convertidos em horas: "
read min

# Esta primeira variável permite fazer a conversão dos minutos informado pelo
# usuário. A opção scale possibilita trabalhar com números decimais repassando o
# valor para a calculadora bc. O cálculo para converter minutos para hora
# é pegar a quantidade de minutos informado na variável $min e dividir por 60

conv1=$(echo "scale=2; $min/60" | bc)

# A variável conv3 vai trabalhar com os valores após a vírgula do resultado anterior
# Exemplo: se o usuário digitou 123 minutos, após a conversão feita na conv1, o valor
# obtido será 2,05 (123/60). Com o comando cut e a opção -c3-4 é utilizado para extrair
# os dois caracteres após a vírgula (0,5)

conv2=$(echo $conv1 | cut -c3-4)

# Finalmente, com os valores obtidos na variável conv2, podemos converter o restante
# dos números para minuto, ou seja, se o usuário digitou 123 minutos, em horas, corres-
# ponde a duas horas e 3 minutos. O valor de três minutos é obtido com a variável
# conv3 como pode ser visto abaixo.
# Aqui foi utilizado o comando tr para deletar (-d) o sinal de ponto final que fica
# quando é utilizado o comando cut. Faça um teste sem o comando tr e veja o que
# ocorre

conv3=$(echo "scale=2;($conv2/100)*60" | bc -l | cut -c1-2 | tr -d '.')
hour=$(echo "scale=2; $min/60" | bc | cut -c1-2 | tr -d '.' )

echo "Você digitou " $min " minutos."
echo "Que corresponde a: " $hour " hora(s) e " $conv3 " minutos"

Abaixo está o script completo sem os comentários para execução:

#!/bin/bash
#Autor: Wagner Souza
#Data: 15/01/2015
#Funcao: Algoritmo que converte minutos em horas

echo -n "Informe um valor em minutos a serem convertidos em horas: "
read min

conv1=$(echo "scale=2; $min/60" | bc)
conv2=$(echo $conv1 | cut -c3-4)
conv3=$(echo "scale=2;($conv2/100)*60" | bc -l | cut -c1-2 | tr -d '.')
hour=$(echo "scale=2; $min/60" | bc | cut -c1-2 | tr -d '.' )

echo "Você digitou " $min " minutos."
echo "Que corresponde a: " $hour " hora(s) e " $conv3 " minutos"

Não esqueça de salvar o arquivo com a extensão ".sh" e atribuir permissão de execução:

# chmod +x script.sh

É interessante rodar esse script da seguinte maneira:

# sh -x script.sh

Essa é uma forma de debug do script, onde você pode acompanhar passo-a-passo como este está sendo executado e solucionar possíveis problemas que venham a ocorrer.

Recomendo também a leitura do artigo para um maior esclarecimento e leituras complementares.

Bom pessoal, por hoje é só. Estarei disponibilizando mais scripts para estudos. Aguardem!

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Exercício Prático LPIC 02

Shell Script nosso de cada dia - Episódio 1

Instalação e configuração do comando sar no OpenSuSe

Exercício Prático LPIC 05

Navegação anônima

Problemas de permissões no Nautilus? A solução!

Criando item no menu do GNU/Linux com terminal executando comandos/scripts/aplicações

VirtualBox - Compartilhando pastas Linux vs Linux

Converter maiúsculos em minúsculos e vice-versa com shell

Acertando data e hora no Linux

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.