Что самый простой путь состоит в том, чтобы найти различием между 2 разами в Python?

Сделать копию существующего списка и перебрать новую копию.

for (String str : new ArrayList<String>(listOfStr))     
{
    listOfStr.remove(/* object reference or index */);
}
13
задан S.L. Barth - Reinstate Monica 19 July 2012 в 15:23
поделиться

7 ответов

Во-первых, обратите внимание, что datetime.time является временем суток, независимым от данного дня, и таким образом, другое между любыми двумя значениями datetime.time будет меньше чем 24 часами.

Один подход должен преобразовать обоих значения datetime.time в сопоставимые значения (такие как миллисекунды) и найти различие.

t1, t2 = datetime.time(...), datetime.time(...)

t1_ms = (t1.hour*60*60 + t1.minute*60 + t1.second)*1000 + t1.microsecond
t2_ms = (t2.hour*60*60 + t2.minute*60 + t2.second)*1000 + t2.microsecond

delta_ms = max([t1_ms, t2_ms]) - min([t1_ms, t2_ms])

Это - маленький Ламе, но это работает.

-1
ответ дан 1 December 2019 в 22:24
поделиться

Вы могли преобразовать и в объекты timedelta и вычесть их друг от друга, который будет заботиться переносов. Например:

>>> import datetime as dt
>>> t1 = dt.time(23, 5, 5, 5)
>>> t2 = dt.time(10, 5, 5, 5)
>>> dt1 = dt.timedelta(hours=t1.hour, minutes=t1.minute, seconds=t1.second, microseconds=t1.microsecond)
>>> dt2 = dt.timedelta(hours=t2.hour, minutes=t2.minute, seconds=t2.second, microseconds=t2.microsecond)
>>>  print(dt1-dt2)
13:00:00
>>> print(dt2-dt1)
-1 day, 11:00:00
>>> print(abs(dt2-dt1))
13:00:00

Отрицательные объекты timedelta в Python получают отрицательное дневное поле с другими положительными полями. Вы могли проверить заранее: сравнение работает и над объектами времени и над объектами timedelta:

>>> dt2 < dt1
True
>>> t2 < t1
True
7
ответ дан 1 December 2019 в 22:24
поделиться

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

>>> import datetime
>>> t1 = datetime.time(2,3,4)
>>> t2 = datetime.time(18,20,59)
>>> dummydate = datetime.date(2000,1,1)
>>> datetime.datetime.combine(dummydate,t2) - datetime.datetime.combine(dummydate,t1)
datetime.timedelta(0, 58675)
16
ответ дан 1 December 2019 в 22:24
поделиться

Python имеет pytz ( http://pytz.sourceforge.net ) модуль, который может использоваться для арифметики объектов 'времени'. Это заботится о смещениях DST также. Вышеупомянутая страница имеет много примеров, которые иллюстрируют использование pytz.

3
ответ дан 1 December 2019 в 22:24
поделиться

Кажется, что это не поддерживается, так как не было бы хорошего способа иметь дело с переполнением в datetime.time. Я знаю, что это не ответ непосредственно, но возможно кто-то с большим опытом Python, чем я может взять это немного далее. Для большего количества информации посмотрите это: http://bugs.python.org/issue3250

1
ответ дан 1 December 2019 в 22:24
поделиться

Получите времена в миллисекундах и затем сделайте вычитание.

-1
ответ дан 1 December 2019 в 22:24
поделиться

Среда. TickCount, кажется, работает хорошо при необходимости в чем-то быстром.

международный запуск = Среда. TickCount

... DoSomething ()

международное прошедшее время = Среда. TickCount - запускаются

Jon

-3
ответ дан 1 December 2019 в 22:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: