Dies ist für eine Hausaufgabe. Ich poste hier mit der Erlaubnis meines Ausbilders. Die Aufgabe besteht darin, Methoden zu einer Klasse hinzuzufügen, die früher im Jahr erstellt wurde, um unter anderem den Unterschied (in Stunden und Minuten) zwischen zwei Zeiten zu finden. Das Problem, das ich habe, ist, dass der Code-Runner auf der Website des Kurses sagt, dass es einen Fehler gibt, wenn man den Unterschied zwischen zwei deutlich voneinander entfernten Zeiten findet, aber mit dem Runner, den man mir gegeben hat, kann ich keine Kombination daraus erstellen mal das bricht den Code den ich geschrieben habe. Unten ist der Code:Probleme beim Finden der Differenz zwischen zwei Zeiten
public class Time implements Comparable
{
private int hour;
private int minute;
public Time()
{
hour = 0;
minute = 0;
}
public Time(int h, int m)
{
if (h>=1&&h<=23)
hour = h;
else hour = 0;
if (m>=0&&m<=59)
minute = m;
else minute = 0;
}
public String toString()
{
String hourStr = new String();
String minStr = new String();
if (hour<10)
hourStr = "0" + Integer.toString(hour);
else hourStr = Integer.toString(hour);
if (minute<10)
minStr = "0" + Integer.toString(minute);
else minStr = Integer.toString(minute);
String milTime = hourStr + minStr;
return (milTime);
}
public String difference(Time t)
{
int base = Integer.parseInt(toString());
int compy = Integer.parseInt(t.toString());
int comp = Math.abs(compy-base);
if (comp%100>=60) {
comp-=(comp%100-(60-Math.abs((compy%100)-(base%100))));
}
String reee = "000" + Integer.toString(comp);
reee = reee.substring(reee.length()-4, reee.length());
reee = reee.substring(0, 2) + ":" + reee.substring(2,4);
reee = "Time difference: " + reee;
return reee;
}
}
Ich habe einige der irrelevanten Methoden gelöscht. Hier ist der jeweilige Code-Block aus dem Läufer, die mir zur Verfügung gestellt wurde:
Time t4 = new Time(12, 40);
Time t5 = new Time(5, 45);
System.out.println(t4.compareTo(t5));
System.out.println(t5.compareTo(t4));
System.out.println("Difference");
System.out.println(t4.difference(t5));
System.out.println(t5.difference(t4));
System.out.println(t4.difference(t4));
Die compareTo Teile funktionieren, aber der Unterschied Methode ist, was die Website sagt, dass ich falsch haben. Aber die Zeiten t4 und t5 durch irgendeine Kombination zu ersetzen, scheint mir keine Probleme zu bereiten. Findest du etwas falsch mit meinem Code, der möglicherweise die Website stolpern könnte?
Ich stimme für das Schließen dieser Frage als Off-Topic ab, weil Sie nicht eingeschlossen haben, welche "Website" Sie testen möchten. Wie sollen wir das Problem zwischen Ihnen und Ihrer Website ausräumen? – ControlAltDel
Warum verwenden Sie rohe Typen ?????? –
Es könnte t4-t5 und t5-t4 anders betrachten. In Ihrem Beispiel t4-t5 = t5-t4 = 6: 55, aber t5-t4 könnte auch 17:05 sein. Ich schätze, das könnte ein Problem verursachen. – Sanjeev