Here you can find the source of timeDiff(Date salida, Date llegada)
public static Date timeDiff(Date salida, Date llegada)
//package com.java2s; //License from project: Open Source License import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class Main { public static Date timeDiff(Date salida, Date llegada) { long m1 = toMinutes(salida); long m2 = toMinutes(llegada); long dif = Math.abs(m2 - m1); Date fecha = toDate(dif * 60); return fecha; }//w w w . j av a2 s .c om public static Long toMinutes(Date fecha) { String sFecha = toTime(fecha); long horas = Long.parseLong(sFecha.substring(0, 2)); long minutos = Long.parseLong(sFecha.substring(3)); minutos = horas * 60 + minutos; return minutos; } public static Date toDate(int year, int month, int day) { Calendar cal = Calendar.getInstance(); cal.set(year, month - 1, day); return cal.getTime(); } public static Date toDate(long segundos) { long horas = segundos / 3600; segundos = segundos % 3600; long minutos = segundos / 60; segundos = segundos % 60; DecimalFormat df = new DecimalFormat("00"); String sfecha = df.format(horas) + ":" + df.format(minutos) + ":" + df.format(segundos); Date fecha = timeToDate(sfecha); return fecha; } public static String toTime(Date fecha) { String time = "00:00"; if (fecha != null) { SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); time = sdf.format(fecha); } return time; } /** * * @param time: LA hora en formato HH:mm o HH:mm:ss * @return Retorna un dato de tipo Date */ public static Date timeToDate(String time) { Date fecha = null; try { SimpleDateFormat sdf; if (time.length() == 5) { sdf = new SimpleDateFormat("HH:mm"); } else if (time.length() == 8) { sdf = new SimpleDateFormat("HH:mm:ss"); } else { throw new RuntimeException("Formato de tiempo incorrecto."); } fecha = sdf.parse(time); } catch (Exception e) { } return fecha; } }