为了账号安全,请及时绑定邮箱和手机立即绑定

我不确定 getFlightTime() 方法该怎么做,如何获取以毫秒为单位的时间?

我不确定 getFlightTime() 方法该怎么做,如何获取以毫秒为单位的时间?

守着一只汪 2024-01-25 15:09:21
设计航班和行程两个类。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通常足以满足飞行持续时间(以分钟为单位)。但当然,通过手动计算,您可以根据预期精度使用任何类型的返回值。


查看完整回答
反对 回复 2024-01-25
  • 1 回答
  • 0 关注
  • 25 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信