设计一个名为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)),然后显示它们的小时,分钟和秒
代码:
/** *作者:魏宝航 * 2020年11月22日,下午15:27 */ import javax.xml.crypto.dsig.spec.XSLTTransformParameterSpec; public class test { public static void main(String[] args) { Time time1=new Time(); Time time2=new Time(555550000); Time time3=new Time(3,80,3700); System.out.println(time1.toString()); System.out.println(time2.toString()); System.out.println(time3.toString()); } } class Time{ private long hour,minute,second; public Time(){ setTime(System.currentTimeMillis()); } public Time(long elapsedTime){ setTime(elapsedTime); } public Time(long hour,long minute,long second){ this.second=second%60; this.minute=(second/60+minute)%60; this.hour=(second/60+minute/60+hour)%60; } public void setTime(long elapsedTime){ long totalSeconds = elapsedTime / 1000; second = (long)(totalSeconds % 60); long totalMinutes = totalSeconds / 60; minute = (long)(totalMinutes % 60); long totalHours = (int)(totalMinutes / 60); hour = (long)(totalHours % 24); } public void setTime(int hour,int minute,int second){ this.hour=hour; this.minute=minute; this.second=second; } @Override public String toString() { return "Hour: " + this.hour + " Minute: " + this.minute + " Second: " + this.second; } }