У меня есть приложение с расписанием поездов, и я пытаюсь рассчитать разницу между двумя значениями в следующем формате ЧЧ: ММ, чтобы мои пользователи могли легко увидеть, опаздывает ли поезд (примечание: я выбираю «реальный») данные из интернета, так что это актуально). Вот чем я сейчас занимаюсь:
//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 .: Я не буду использовать сторонние библиотеки, поэтому мне нужно написать собственный алгоритм, но я надеюсь, что он будет окончательным ...
Thx!
РЕДАКТИРОВАТЬ: примечание: значения hs / ms / hr / mr жестко закодированы в этом примере, хотя в моем приложении они корректно обновляются для каждой строки.