Полагаю, проблема в том, что вы работаете с десятью основанными значениями, но часы - это 60 основанных значений.Таким образом, 1,5 часа - это не 150 минут, как в десятичной системе (например, 1,5 метра означает 150 сантиметров), но 90 минут.
Мой совет: используйте собственный класс Date или выберитеработать только в подразделении, чтобы быть последовательным в вашей математике.Но класс Date сделан для этих целей.Вычитание двух Date.getTime () и затем преобразование результата в новую Date дает вам то, что вы хотите.