Конвертировать float в float time в python - PullRequest
0 голосов
/ 04 июня 2018

Как в коде Python преобразовать 10,5 в 10:30 (10 часов и 30 минут).

Теперь время = 10,5 Мне нужен результат время = 10: 30

Любое простое решение?

Tnx всем за помощь

Ответы [ 3 ]

0 голосов
/ 04 июня 2018

Разделите число на целые и десятичные части, затем умножьте десятичную часть на 60 и сложите их вместе:

t = 10.5

hour, minute = divmod(t, 1)
minute *= 60
result = '{}:{}'.format(int(hour), int(minute))
# result: 10:30

См. Также документацию для divmodфункция и этот вопрос для других способов разбить поплавок на две части.

0 голосов
/ 05 июня 2018

Вы можете передать необработанное значение с плавающей точкой как hours в datetime.timedelta(), а затем работать с ним, как мне кажется, наиболее удобным способом:

from datetime import datetime, timedelta

td = timedelta(hours=10.5)
dt = datetime.min + td
print("{:%H:%M}".format(dt))
print(td.total_seconds())
0 голосов
/ 04 июня 2018

Попробуйте:

время = 10,5

print '{0:02.0f}:{1:02.0f}'.format(*divmod(float(time) * 60, 60))

10: 30

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...