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

设计航班和行程两个类。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() {


        }



    }


守着一只汪
浏览 29回答 1
1回答

蛊毒传说

飞行时间(持续时间)是出发时间和到达时间之间经过的时间(即持续时间=到达时间-出发时间;两者采用相同的时间单位)。由于您的方法被命名为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通常足以满足飞行持续时间(以分钟为单位)。但当然,通过手动计算,您可以根据预期精度使用任何类型的返回值。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java