私は3つのクラスを持っています。私はインターフェースについて学んでおり、インターフェースクラスTravelCostは、3つのクラスすべてで一貫性を保つために、パブリック抽象とメソッドのタイプと名前を持っている必要があります。3つのクラス(AirTravelCost、TrainTravelCost、CarTravelCost)はTravelCostを実装します。私はそれらすべてを設定し、動作するようにテストしました。ただし、私が想定しているテストページでは、arrayListを使用して、最小のコストと最短の期間で検索を入力します。ArrayListでこれを行ったことがないため、これを行う方法がわかりません。テストクラスのサンプルコードは次のとおりです。
import java.util.*;
public class TestTravelCost
{
public static void main(String [] args)
{
/*Scanner scn = new Scanner(System.in); //scanner object
System.out.println("Number of Miles: ");
double numOfMiles = scn.nextDouble();
System.out.println("Hotel cost per night: ");
double cost = scn.nextDouble();
System.out.println("Description: ");
String description = scn.nextLine();*/
TravelCost c = new CarTravelCost(400, 200, "Boston");//instantiate object for car travel
TravelCost t = new TrainTravelCost(6, 60.0, "Boston"); //instantiate object for train travel
TravelCost a = new AirTravelCost(224, "20110103", "0743" , "20110103", "1153", "Boston");//instantiate object for air travel
ArrayList<TravelCost> AL = new ArrayList<TravelCost>();//array list for car travel
AL.add(c);
AL.add(t);
AL.add(a);
for(TravelCost tc : AL)
{
System.out.println(tc.toString());
}
}
}
出力:ボストンへの車の旅は7.2727272727272725時間と費用210.0
ボストンへの電車の旅は6.0時間と費用70.0
ボストンへの飛行機の旅は1.0166666666666666と費用243.48888888888888 //これは正しい計算ではありません、私はどこにいるのかわかりません間違っていますが、最短の時間と同じだと思います。数学が苦手だと思います。
これが私が空の旅に使用した計算方法です
public double getDuration()
{
//---DEPARTURE---//
int Dyear = Integer.parseInt(departureDate.substring(0,3)); //2011
int Dmonth = Integer.parseInt(departureDate.substring(4,5));//01
int Dday = Integer.parseInt(departureDate.substring(6,7));//03
int Dhour = Integer.parseInt(departureTime.substring(0,1));//0743
int Dminute = Integer.parseInt(departureTime.substring(2,3));//1153
//---ARRIVAL---//
int Ayear = Integer.parseInt(arrivalDate.substring(0,3)); //2011
int Amonth = Integer.parseInt(arrivalDate.substring(4,5));//01
int Aday = Integer.parseInt(arrivalDate.substring(6,7));//03
int Ahour = Integer.parseInt(arrivalTime.substring(0,1));//0743
int Aminute = Integer.parseInt(arrivalTime.substring(2,3));//1153
GregorianCalendar date = new GregorianCalendar(Dyear, Dmonth, Dday, Dhour, Dminute);//departure date & time
GregorianCalendar time = new GregorianCalendar(Ayear, Amonth, Aday, Ahour, Aminute);//arrival date & time
//date = arrivalDate - departureDate;//2011-01-03 - 2011-01-03 = 0
//time = arrivalTime - departureTime;//0734 - 1153 = 410
double duration = (Math.abs(date.getTimeInMillis() - time.getTimeInMillis()) / 60000.0) / 60.0;
return duration;
`enter code here` }
コードでこの結果を取得するにはどうすればよいですか?
最低費用:ボストンへの電車の旅は11.0時間かかり、費用は70.0です。最短の時間
:ボストンへの飛行機の旅は4.166666666666667時間かかります234.0