これは宿題のためのものです。私はインストラクターの許可を得てここに投稿しています。この割り当ては、年内に作成されたクラスにメソッドを追加して、2つの時間の差(時間と分)を検索することです。私が抱えている問題は、コースのウェブサイトのコードランナーが、かなり離れている2つの時間の差を見つけるときにエラーがあると言いますが、私に提供されたランナーを使用して、私が書いたコードを壊す時間。以下はコードです2回の違いを見つけるときの問題
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