設計航班和行程兩個類。Flight 類通過以下成員存儲有關航班的信息: ? 名為flightNo 的私有字符串數據字段,用于表示航班號。? 名為departmentTime 的私有GregorianCalendar 數據字段。? 名為arrivalTime 的私有GregorianCalendar 數據字段。? 一個構造函數,用于創(chuàng)建具有指定航班號、出發(fā)時間和到達時間的航班。? 適當的getter 和setter 方法。(提示:flightNo 我們需要二傳手嗎?)? 名為 getFlightTime() 的方法,返回飛行時間(以分鐘為單位)。假設出發(fā)時間和到達時間位于同一時區(qū)。(提示:使用 getTimeInMillis() 方法獲取以毫秒為單位的到達時間和出發(fā)時間,計算它們的減法,并將結果從毫秒轉換為分鐘。) import java.util.Calendar;import java.util.GregorianCalendar;public class TestFlightItinerary{ public static void main(String[] args) { }} class Flight{ private String flightNo; private GregorianCalendar departureTime; private GregorianCalendar arrivalTime; //Constructor Flight(String SpecNo,GregorianCalendar SpecDtime, GregorianCalendar SpecAtime ){ this.flightNo = SpecNo; this.departureTime = SpecDtime; this.arrivalTime = SpecAtime; } //Getters public String GetFlightNo() { return flightNo; } public GregorianCalendar GetDtime() { return departureTime; } public GregorianCalendar GetAtime() { return arrivalTime; } //setters /*public void SetFlightNo(String Number) { flightNo = Number; }*/ public void SetDtime(GregorianCalendar Dtime) { departureTime = Dtime; } public void SetAtime(GregorianCalendar Atime) { departureTime = Atime; } // getFlightTime method public GregorianCalendar getTimeinMillis() { } public GregorianCalendar getFlightTime() { } }
1 回答

蠱毒傳說
TA貢獻1895條經驗 獲得超3個贊
飛行時間(持續(xù)時間)是出發(fā)時間和到達時間之間經過的時間(即持續(xù)時間=到達時間-出發(fā)時間;兩者采用相同的時間單位)。
由于您的方法被命名為getTimeinMillis
,那么我猜您期望以毫秒為單位的飛行時間(持續(xù)時間)(表示為long
)。因此,您應該獲得以毫秒為單位的兩個時間(出發(fā)和到達)來計算持續(xù)時間(如上所述)。如果不出意外,您可以始終使用不同的返回類型。
public?long?getTimeinMillis()?{ ????return?arrivalTime.getTimeInMillis()?-?departureTime.getTimeInMillis(); }
由于您已經有了以毫秒為單位的飛行時間,因此只需進行轉換即可以分鐘為單位。您可以使用標準Java TimeUnit toMinutes或手動計算如下:
1 分鐘 = 60 秒 = 60 * 1000 毫秒
因此,X 毫秒中的分鐘數 = X / (60 * 1000)
public?long?getFlightTime()?{ ????return?TimeUnit.MILLISECONDS.toMinutes(getTimeinMillis()); ????????//or?return?getTimeinMillis()?/?(60?*?1000);}
上面的代碼將分鐘數返回為 a?long
,這在大多數情況下是多余的,因為int
通常足以滿足飛行持續(xù)時間(以分鐘為單位)。但當然,通過手動計算,您可以根據預期精度使用任何類型的返回值。
添加回答
舉報
0/150
提交
取消