Algoritmo para converter minutos em hora

Publicado por Wagner Souza em 19/01/2015

[ Hits: 5.586 ]

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 10

Baixando arquivos de servidores FTP via linha de comando

Erro ao formatar partições EXT4 no OpenSUSE [Resolvido]

Exercício Prático LPIC 12

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

Leitura recomendada

Resolvendo problema com scripts que estão rodando no crontab

Desligar o PC após concluir download (Chrome e Chromium)

Tornando seus scripts amigáveis (executáveis)

Habilitar Cgi-Shell no Apache2

Como excluir um determinado kernel no Ubuntu

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts