Algoritmo para converter minutos em hora

Publicado por Wagner Souza em 19/01/2015

[ Hits: 7.149 ]

Blog: https://zerotoherosec.blogspot.com/

 


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!

Outras dicas deste autor

Exercício Prático LPIC 11

Limitar acesso de mais de um usuário via SSH

Exercício Prático LPIC 05

Otimizando o uso da memória RAM do sistema

Exercício Prático LPIC 06

Leitura recomendada

Aulas Shell Script do zero - Parte 6

Criar "ícone" para executar Scripts

Pacman colorido no Arch Linux

Exercício Prático LPIC 06

O jeito mais fácil de escrever e executar um Shell Script no Linux

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário