使用java设计一个名为Time的类

使用java设计一个名为Time的类,这个类包含:

①表示时间的数据域hour,minute和second
②一个以当前时间创建Time对象的无参数构造方法(使用System.currentTimeMillis()获取当前时间)
③一个构造Time对象的构造方法,以一个指定的流逝时间值来构造Time对象,这个值从1970年1月1日午夜开始到现在流逝的以毫秒表示的值(数据域的值表示这个时间)
④以指定的小时、分钟、和秒来构造Time对象的构造方法
⑤三个数据域hour,minute,second各自的获取方法
⑥一个名为setTime(long elapsedTime)的方法使用流逝的时间给对象设置一个新的时间。例如,如果流逝的时间是555550000毫秒,则转换为10小时,10分钟,10秒。提示:555550000 转换的过程如下:
totalSeconds = 555550000 / 1000;
second = (int)(totalSeconds % 60);
otalMinutes = totalSeconds / 60;
minute = (int)(totalMinutes % 60);
totalHours = (int)(totalMinutes / 60);
hour = (int)(totalHours % 24);
⑦一个名为setTime(int hour, int minute, int second)的方法给对象设置一个新的时间。
⑧定义名为toString()的方法,返回字符串类型,格式如下:
return "Hour: " + this.hour + " Minute: " + this.minute + " Second: " + this.second;
⑨创建三个Time对象(使用new Time(),new Time(555550000)和new Time(3,80,3700)),然后显示它们的小时,分钟和秒。


以下为代码:

public class Time {
    private int hour;
    private int minute;
    private int second;

    Time() {
        this(System.currentTimeMillis());
    }
    
    //传入以毫秒计时的参数
    Time(long time) {
        setTime(time);
    }
    
    //传入小时、分钟、秒,因为用户输入的数据可能小于零,此处抛出异常
    Time(int hour, int minute, int second) throws IllegalArgumentException {
        if (hour < 0 || minute < 0 || second < 0) {
            System.out.println("输入的时间有误");
            throw new IllegalArgumentException();
        }
        //此处用于分析用户输入的时间进行修改
        //如用户输入的是3600秒,则我们需要为hour增加一个小时
        int seconds = second/60;
        this.second = second%60;
        int minutes = (minute + seconds)/60;
        this.minute = (minute + seconds)%60;
        this.hour = (hour + minutes)%24;
    }

    public void setTime(long elapsedTime) {
        double totalSeconds = elapsedTime / 1000;
        second = (int) (totalSeconds % 60);
        double totalMinutes = totalSeconds / 60;
        minute = (int) (totalMinutes % 60);
        double totalHours = (int) (totalMinutes / 60);
        hour = (int) (totalHours % 24);
    }

    @Override
    public String toString() {
        return "Hour: " + this.hour + " Minute: " + this.minute + " Second: " + this.second;
    }

    public static void main(String[] args) {
        Time t1 = new Time();
        Time t2 = new Time(555550000);
        Time t3 = null;
        try{
            t3 = new Time(3,80,3700);
        }catch (Exception e){

        }
        System.out.println(t1.toString());
        System.out.println(t2.toString());
        System.out.println(t3.toString());

    }
}

运行截图:
在这里插入图片描述

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页