2015-11-26 2 views
0

Я знаю, что это не лучший способ объяснить, чего я хочу достичь, но я постараюсь сделать это, определив желаемый результат.Способ преобразования чисел в секунды

Контекст: Объект проходит точку А в 6:58 (формат: минута: секунда) и проходит точку B в 7:12. Рассчитайте время, необходимое для получения от точки A до B.

По логике вы можете взять B время от времени, чтобы получить результат. Я ожидал: 0.14, потому что он принимает объект 14 секунд, но получил 0.54, потому что Python по умолчанию не будет знать, что мне нужно его вычислить в формате секунд, где 59 максимум, прежде чем вы достигнете нового ведущего числа.

Мой код просто:

A=6.58 
B=7.12 
print(B-A) 
+4

Зачем вам представлять время с поплавками? Используйте структуру данных, которая точно представляет формат, и если вы действительно должны использовать float, а затем завершите логику в классе, который будет управлять им. –

+1

Мне нужно представлять время с поплавками, потому что в моем коде больше контекста, чем показано в вопросе. Также объясните, что я могу делать с занятиями. Я довольно новичок в Python. –

+0

исследовать модуль datetime, это, вероятно, подойдет вашим целям. – Totem

ответ

5

Решение 1: если вы абсолютно не нужно плавать как входы

from datetime import datetime, date, time 
a = datetime.combine(date.today(), time(0, 6, 58)) 
b = datetime.combine(date.today(), time(0, 7, 12)) 

Решение 2: если ваши входы поплавки

from datetime import datetime, date, time 

def float_to_datetime(myfloat): 
    minutes, seconds = str(myfloat).split('.') 
    return datetime.combine(date.today(), time(0, int(minutes), int(seconds))) 

a = float_to_datetime(6.58) 
b = float_to_datetime(7.12) 

В обоих случаях выход:

print(b - a) 
0:00:14 
print((b-a).total_seconds()) 
14.0 
+0

Я думаю, что это тоже работает. Я проверю его, как только я снова смогу получить доступ к python (школа), а затем я помету ваш ответ. –

Смежные вопросы