2012-03-25 2 views
1

У меня есть приложение для расписания поездов, и я пытаюсь рассчитать разницу между двумя моментами в следующем формате HH: MM, поэтому мои пользователи могут легко увидеть, если поезд опаздывает (примечание: я извлекаю «реальные» данные из Интернета, поэтому он обновлен). Это то, что я делаю в данный момент:Действующий алгоритм для расчета разницы между двумя временами?

//schedule time of the train 
    int hs=12; 
    int ms=0; 

    //real time of the train 
    int hr=12; 
    int mr=15; 

    int t1=hs*60 + ms; 
    int t2=hr*60 + mr; 

    int d; //integer for the difference in minutes 
    if(hr>=hs) d=t2-t1; //standard situation 
    else d=1440+t2-t1; //for situation like sch: 23:55, real: 00:05 

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

P.S .: Я не буду использовать 3 участника LIBS, так что я должен написать свой собственный алгоритм, Тхо я надеюсь, что это будет окончательным ...

Thx!

EDIT: обратите внимание: значения hs/ms/hr/mr жестко закодированы в этом примере, в моем приложении, я их правильно обновил для каждой строки.

+0

Дата и календарь не третья библиотека часть. – Blackbelt

ответ

1

Это должно дать вам минутную разницу в любой день или за границу любого дня, за исключением летнего времени.

+0

ну, я не позабочусь об этом, так как переход на летнее время меняется, когда поезд не находится в движении, поэтому любой поиск просто игнорирует это :) – hundeva

1

Вы должны использовать Java Date и Calendar и DateFormat вспомогательные классы для достижения того, что вы хотите (они не являются третьей партии, они ява библиотеки и включены в Android SDK).

У вас есть большой Exemple за то, что вы хотите здесь: Is there a function to calculate the difference between two times and display a relative result?

Для класса DateFormat у вас есть хороший пример здесь: http://www.exampledepot.com/egs/java.text/formatdate.html

+0

Я собираюсь проверить его, однако я где-то читал, что эти части из libs довольно сломаны, а ppl предложит сторонние библиотеки ... Я не знаю, если они правы, но это одна из причин, почему я должен написать собственное решение. Thx в любом случае! :) – hundeva

+0

Нет, они вообще не сломаны ... Вы действительно считаете, что библиотеки, используемые так много, и часть Java по умолчанию будут нарушены? Их нет, и они подходят для того, чего вы хотели достичь. – greven

+0

Ну, я мог бы быть немного параноиком от времени до времени ... :) Во всяком случае, я не был уверен, правда ли слухи об этом или нет, даже если я подозревал, что это не так, я хотел быть уверен. – hundeva

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