Soluzione 2.7

Ecco una possibile soluzione:
import java.util.Scanner;

public class TimeDiffComputer
{
    public static void main(String[] args)
    {
	final int MINUTES_PER_HOUR = 60;

	Scanner in = new Scanner(System.in);
	System.out.println("Inserisci il primo orario (formato hhmm):");
	int time1 = in.nextInt();
	System.out.println("Inserisci il secondo orario (formato hhmm):");
	int time2 = in.nextInt();
	
	int hours1 = time1 / 100;
	int hours2 = time2 / 100;
	int mins1 = time1 % 100 + hours1 * MINUTES_PER_HOUR;
	int mins2 = time2 % 100 + hours2 * MINUTES_PER_HOUR;

	int timediff = mins2 - mins1;
	int hourdiff = timediff / MINUTES_PER_HOUR;
	int mindiff =  timediff % MINUTES_PER_HOUR;

	System.out.print("Tempo trascorso: ");
	System.out.print(hourdiff + " ore e " + mindiff + " minuti.\n");
  }
}

Ecco una soluzione migliorata, che gestisce anche il caso in cui il secondo orario e` piu` piccolo del primo. Studiare con attenzione la riga di codice immediatamente dopo il commento. Essa costituisce l'unica differenza rispetto alla precedente soluzione TimeDiffComputer.
Che cosa succede quando timediff e` positivo? Che cosa succede quando timediff e` negativo?
import java.util.Scanner;

public class TimeDiffComputer2
{
    public static void main(String[] args)
    {
	final int MINUTES_PER_HOUR = 60;
	final int MINUTES_PER_DAY = 24 * MINUTES_PER_HOUR;

	Scanner in = new Scanner(System.in);
	System.out.println("Inserisci il primo orario (formato hhmm):");
	int time1 = in.nextInt();
	System.out.println("Inserisci il secondo orario (formato hhmm):");
	int time2 = in.nextInt();
	
	int hours1 = time1 / 100;
	int hours2 = time2 / 100;
	int mins1 = time1 % 100 + hours1 * MINUTES_PER_HOUR;
	int mins2 = time2 % 100 + hours2 * MINUTES_PER_HOUR;

	int timediff = mins2 - mins1;
	/*
	  la parte difficile del problema: quando timediff e' negativo...
	  la seguente istruzione fa al caso nostro:
	*/
	timediff = (timediff + MINUTES_PER_DAY) % MINUTES_PER_DAY;
	int hourdiff = timediff / MINUTES_PER_HOUR;
	int mindiff =  timediff % MINUTES_PER_HOUR;

	System.out.print("Tempo trascorso: ");
	System.out.print(hourdiff + " ore e " + mindiff + " minuti.\n");
  }
}