1
這是作業作業。我在我的教官的許可下發布在這裏。該任務是爲一年前創建的課程添加方法,以找出兩次之間的差異(以小時和分鐘爲單位)等等。我遇到的問題是,課程網站上的代碼運行者說,發現兩次相距甚遠的差異時發生錯誤,但使用提供給我的跑步者時,我無法創建這會破壞我寫的代碼。以下是代碼:發現兩次差異時的問題
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;
}
}
我已經刪除了一些不相關的方法。下面是代碼這是我提供的亞軍特定塊:
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));
的的compareTo部分做工精細,但不同的方法是在網站上說,我有什麼錯。但是,用任何組合替換Times t4和t5似乎不會給我帶來任何問題。你注意到我的代碼有什麼問題嗎?
我投票結束這個問題作爲題外話,因爲你沒有包括什麼「網站」這是你正在測試。我們應該如何解決你和你的網站之間的問題? – ControlAltDel
你爲什麼使用原始類型?????? –
它可能不同地考慮t4-t5和t5-t4。在你的例子中,t4-t5 = t5-t4 = 6:55,但t5-t4也可以是17:05。所以我想這可能會造成一些問題。 – Sanjeev