Salve ragazzi!! Rieccomi con un altro quesito esistenziale

Allora, questo è quello che mi viene richiesto

Scrivete un programma che legge due indicazioni orarie in formato militare (0900, 1730) e stampa il numero di ore e di minuti che separano i due orari.
Ecco un esempio di esecuzione
Please enter the first time: 0900
Please enter the second time: 1730
8 hours 30 minutes

Otterrete una valutazione migliore se riuscite a gestire il caso in cui il primo orario è successivo
al secondo orario
Please enter the first time: 1730
Please enter the second time: 0900
15 hours 30 minutes

Realizzate una classe TimeInterval il cui costruttore riceve due orari in formato militare. La classe
dovrebbe avere due metodi, getHours e getMinutes.
E questa la soluzione da me proposta
codice:
import java.util.GregorianCalendar;

public class TimeInterval 
{
	public TimeInterval(int time1, int time2)
	{
		hour1 = time1/100;
		hour2 = time2/100;
		minute1  = time1%100;
		minute2  = time2%100;
		from.set(from.HOUR_OF_DAY, hour1);
		from.set(from.MINUTE, minute1);
		to.set(to.HOUR_OF_DAY, hour2);
		to.set(to.MINUTE, minute2);
		time1InMillisecond = from.getTimeInMillis();
		time2InMillisecond = to.getTimeInMillis();
		timeDifference = time2InMillisecond - time1InMillisecond;
	}
	
	public long getHours()
	{
		return timeDifference/(1000*60*60);
	}
	
	public long getMinutes()
	{
		return timeDifference/(1000*60);
	}
	
	private int hour1, hour2, minute1, minute2;
	private GregorianCalendar from = new GregorianCalendar();
	private GregorianCalendar to = new GregorianCalendar();
	private long time1InMillisecond, time2InMillisecond, timeDifference;
	
}
Andando a testare il programma, quando stampo la differenza di orari mi restituisce 0:0.
So che ho sbagliato qualcosa...ma non capisco cosa!!
Plz help me