[DUVIDA] Trasformar minutos em H horas, M minutos e S segundos

1,573 views
Skip to first unread message

cunh...@hotmail.com

unread,
Dec 11, 2014, 12:16:40 PM12/11/14
to python...@googlegroups.com
Olá amigos,
sou iniciante na linguagem, e estou estudando porem estou com um pequeno problema e quero resolver essa questão abaixo:

Ler um número real representando um tempo em minutos e mostrá-lo no formato: ‘h horas, m minutos e s segundos’ (sendo h, m e s inteiros). 

Por exemplo, se for digitado o valor em minutos 73,25, o programa escreverá: 1 hora, 13 min e 15 seg.

Quem poder ajudar aguadeço!

Carlos Henrique

unread,
Dec 11, 2014, 1:00:49 PM12/11/14
to python...@googlegroups.com

Terás que usar  STRFTIME, e importar a biblioteca time, mas a concelho-te a dar uma olhada na PythonBrasil pra nivel de conhecimento da linguagem python e Welcome to the Python.

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Henr"Ikke" Pereira

unread,
Dec 11, 2014, 1:07:38 PM12/11/14
to Python Brasil - Group
A biblioteca datetime pode te ajudar

Usando o timedelta que ela fornece é fácil conseguir o número total de segundos. A partir desse número, divide por 3600 pra conseguir quantas horas, e divide o restante por 60 pra conseguir os minutos.

Algo do tipo:

hora, minutos = divmod(datetime.timedelta(minutes=73.25).total_seconds(), 3600)
minutos, segundos = divmod(minutos, 60)

E pronto :)
--
Henrique G.G. Pereira - "Ikke"
+55 (55) 9619-7499

Fabio C. Barrionuevo da Luz

unread,
Dec 11, 2014, 1:23:39 PM12/11/14
to python...@googlegroups.com
Tem o Arrow tambem, para trabalhar com datas e tempo

http://crsmithdev.com/arrow/
Fábio C. Barrionuevo da Luz
Acadêmico de Sistemas de Informação na Faculdade Católica do Tocantins - FACTO
Palmas - Tocantins - Brasil - América do Sul


Blog colaborativo sobre Python e tecnologias Relacionadas, mantido totalmente no https://github.com/pythonclub/pythonclub.github.io .

Todos são livres para publicar. É só fazer fork, escrever sua postagem e mandar o pull-request. Leia mais sobre como publicar em README.md e contributing.md.
Regra básica de postagem:
"Você" acha interessante? É útil para "você"? Pode ser utilizado com Python ou é útil para quem usa Python? Está esperando o que? Publica logo, que estou louco para ler...

Linux - Junior Polegato

unread,
Dec 11, 2014, 1:49:11 PM12/11/14
to python...@googlegroups.com
Olá!

        Não vejo muito problema, seria algo como:

digitado = 73.25
h = int(digitado / 60)
m = int(digitado - hora * 60)
s = int(round(digitado % 1 * 60))
print "%i hora(s), %i min. e %i seg." % (h, m, s)

--

[]'s

Junior Polegato

Die go

unread,
Dec 11, 2014, 1:56:22 PM12/11/14
to python...@googlegroups.com

Estou aprendendo python a uma semana e meia, ontem olhando o grupo no face tinha uma duvida bem assim(vc que postou?)
saiu um pouco fora do escopo do que eu estava aprendendo, mas me chamou a atenção a duvida e consegui resolver o problema dessa forma..



cunh...@hotmail.com

unread,
Dec 11, 2014, 2:00:34 PM12/11/14
to python...@googlegroups.com
Amigo, seguindo seu exemplo não funcionou bem...
da uma olhada:

digitado = input("Digite o valor: ")

h = int(digitado / 60)
m = int(digitado - hora * 60)
s = int(round(digitado % 1 * 60))

print "%i hora(s), %i min. e %i seg." % (h, m, s)


Eduardo Oliva

unread,
Dec 11, 2014, 3:16:19 PM12/11/14
to python...@googlegroups.com
Use os cálculos com divmod como o Henrique citou acima, funciona para o que você precisa, já precisei fazer parse de horas para minutos e segundos e usei essa abordagem.

Att

Linux - Junior Polegato

unread,
Dec 11, 2014, 3:40:45 PM12/11/14
to python...@googlegroups.com
On 11-12-2014 17:00, cunh...@hotmail.com wrote:
> Amigo, seguindo seu exemplo não funcionou bem...
> da uma olhada:
>
> digitado = input("Digite o valor: ")
>
> h = int(digitado / 60)
> m = int(digitado - hora * 60)
> s = int(round(digitado % 1 * 60))
>
> print "%i hora(s), %i min. e %i seg." % (h, m, s)

Olá!

O input te retorna um string, assim não é possível fazer cálculos.
Você precisa converte para float, assim use:

digitado = float(input("Digite o valor: "))

Se for aceitar o padrão regional, vírgula no caso do Brasil:

import locale
locale.setlocale(locale.LC_ALL, '')
digitado = locale.atof(input("Digite o valor: "))


--

[]'s

Junior Polegato
Reply all
Reply to author
Forward
0 new messages