设计航班和行程两个类。Flight 类通过以下成员存储有关航班的信息: • 名为flightNo 的私有字符串数据字段,用于表示航班号。• 名为departmentTime 的私有GregorianCalendar 数据字段。• 名为arrivalTime 的私有GregorianCalendar 数据字段。• 一个构造函数,用于创建具有指定航班号、出发时间和到达时间的航班。• 适当的getter 和setter 方法。(提示:flightNo 我们需要二传手吗?)• 名为 getFlightTime() 的方法,返回飞行时间(以分钟为单位)。假设出发时间和到达时间位于同一时区。(提示:使用 getTimeInMillis() 方法获取以毫秒为单位的到达时间和出发时间,计算它们的减法,并将结果从毫秒转换为分钟。) 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个赞
飞行时间(持续时间)是出发时间和到达时间之间经过的时间(即持续时间=到达时间-出发时间;两者采用相同的时间单位)。
由于您的方法被命名为getTimeinMillis
,那么我猜您期望以毫秒为单位的飞行时间(持续时间)(表示为long
)。因此,您应该获得以毫秒为单位的两个时间(出发和到达)来计算持续时间(如上所述)。如果不出意外,您可以始终使用不同的返回类型。
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
通常足以满足飞行持续时间(以分钟为单位)。但当然,通过手动计算,您可以根据预期精度使用任何类型的返回值。
添加回答
举报
0/150
提交
取消