class S1A5_mD // Variante: die Uhrzeiten werden mit einem Doppelpunkt zw. Minuten und Stunden eingelesen
{
public static void main (String[] args)
{
SimpleInput lesen;
lesen = new SimpleInput();
String text;
String dp = ":";
int d1 = 0; // Index des ersten Doppelpunktes
int d2 = 0; // Index des zweiten Doppelpunktes
int i = 0; // Array-Zählindex
int helper;
int ah;
int ah1;
int amin;
int eh;
int emin;
int dh;
int dmin;
// Vorgehensweise
// String von Tastatur einlesen
// einzelne Character(Buchstaben,Zahlen...) aus String holen und in Array1 schreiben
// mit Klasse String, Methode getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
// einzelne Arrayelemente aus Array1 holen, in integer umwandeln und in Array2 schreiben
// Klasse character, Methode getNumericValue(char ch)
// mit den einzelnen Arrayelementen ah, amin, eh und emin zusammenbauen
// Differenzen berechnen
// Ausgabe
System.out.println ("Bitte zuerst Anfangs- und dann Endzeit eingeben.\nMitternacht bitte als 24 eingeben. Format hh:mm");
// text = "anf 12:34 end 56:78";
text = lesen.nextLine();
System.out.println (text);
// Suche, wo die Doppelpunkte sind
d1 =text.indexOf(dp, 0);
d2 =text.indexOf(dp, d1+1);
System.out.println("erster : bei Index " + d1);
System.out.println("Zweiter : bei Index " + d2);
if (d1<0 || d2<0)
{
System.out.println("Uhrzeiten bitte korrekt eingeben!");
exit();
}
// Character aus String holen und jeden einzeln in ein Element des Arrays1 schreiben
char[] Array1 = new char[8];
text.getChars(d1-2, d1, Array1, 0); // ah
text.getChars(d1+1, d1+3, Array1, 2); // amin
text.getChars(d2-2, d2, Array1, 4); // eh
text.getChars(d2+1, d2+3, Array1, 6); // emin
// zeige Array1-Elemente an
while (i<8)
{
System.out.println("Array1: Index Nummer " + i + "enthält Wert " + Array1[i]);
i++;
}
// Wandeln der Array1-Character-Elemente in int und Schreiben in Array2
int[] Array2 = new int[8];
i = 0;
while (i<8)
{
Array2[i] = Character.getNumericValue(Array1[i]);
i++;
}
// mit den einzelnen Arrayelementen ah, amin, eh und emin zusammenbauen
ah = (Array2[0])*10 + Array2[1];
amin = (Array2[2])*10 + Array2[3];
eh = (Array2[4])*10 + Array2[5];
emin = (Array2[6])*10 + Array2[7];
System.out.println ("ah= "+ah);
System.out.println ("amin= "+amin);
System.out.println ("eh= "+eh);
System.out.println ("emin= "+emin);
// Berechnen der Differenz
dmin = emin - amin;
dh = eh - ah;
System.out.println("zwischenerg dmin"+dmin);
if (dmin<0)
{
dmin = dmin + 60;
dh = dh - 1;
}
if (dh<0) dh = dh +24;
System.out.println (" ");
System.out.println ("Der Unterschied beträgt " + dh + "Stunden und " + dmin + "Minuten.");
}
}