私はプログラミングに非常に慣れていません。このコードは完全にはほど遠いので、素人っぽさを許してください。
このコードは、複数のクラスを使用して実行時間に時間を追加することです
これが私の時間クラスです:
public class Time {
private int Minutes, Hours, TotalMin;
private String stringAM= "AM", stringPM = "PM", correctedMinutes ;
public String valid, TimeofDay;
public static int error;
public Object toString;
//-----------------------------------------------------------------
// Sets up the time by defining its minutes and hours
//-----------------------------------------------------------------
public Time(int hours, int minutes)
{ if (minutes>59|| minutes<0|| hours>23 || hours<0) {
Hours=0;
Minutes=0;
error=1;
return;
}
else {Hours=hours;
Minutes=minutes;
error=0;
return;
}}
public int Time2(int minutes, int hours) {
if (Hours<12 || Hours>0 || TimeofDay.equals ("AM") || TimeofDay.equals ("PM")) {
Hours=0;
Minutes=0;
return error=0;
}
else {
Hours=hours;
Minutes=minutes;
return error=0;
}
}
public int addMinutes (int Hours, int Minutes, int elapsedMin)
{
if (elapsedMin<0)
return error=1;
else {
TotalMin=elapsedMin+Minutes;
return error=0;}
}{
while (TotalMin>60)
{TotalMin=TotalMin-60;
Hours=Hours+1; if (Hours==25)
{ Hours=0;
Minutes=TotalMin;
}
}
public String toString ()
{
String correctedMinutes = String.format("%02d", Minutes);
return Hours+ ":" + correctedMinutes + ":" + TimeofDay; }
}
テストコードもあります
import java.util.Scanner;
public class TimeTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
int minutes, hours;
String TimeofDay;
Scanner scan=new Scanner (System.in);
System.out.println("Please enter starting hour:");
hours=scan.nextInt();
System.out.println("Please enter starting minute:");
minutes=scan.nextInt();
System.out.println("Please enter AM or PM:");
TimeofDay=scan.next();
Time classtime = new Time (hours, minutes);
{}
classtime.Time2(minutes, hours);
int error=Time.error;
if (error==1)
System.out.println("This is an invalid time");
System.out.println (classtime.toString);
System.out.print("The class ends at ");
System.out.println (classtime.toString);
}}
基本的に、コードを実行すると実行が終了せず、代わりに出力される理由がわかりません。
"Null
The class ends at Null"
洞察はありますか?コードには他にも問題があることは認識していますが、さらに実行できるようになったら修正します
(ところで、メソッド Time 2 は非常に冗長に見えることを知っています。私の先生はクラスでそれを必要としているか、コンストラクターに含めただけです)
どんな入力でも大歓迎です