设计一个名为Time的类,这个类包含:表示时间的数据域hour,minute和second

简介: 设计一个名为Time的类,这个类包含:表示时间的数据域hour,minute和second

设计一个名为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;
    }
}


目录
相关文章
|
8月前
|
运维 大数据 Shell
时间命令date,你真的会用了吗?
时间命令date,你真的会用了吗?
124 0
time模块与datetime模块,字符串与日期类型转换
time模块与datetime模块,字符串与日期类型转换
|
8月前
|
算法 编译器 C语言
【C++】构建第一个C++类:Date类
【C++】构建第一个C++类:Date类
91 4
|
8月前
时间类:定义对象并输出特定时间
时间类:定义对象并输出特定时间
33 0
|
8月前
|
JavaScript
js知识总结 -- Math对象、data日期对象的方法及功能
js知识总结 -- Math对象、data日期对象的方法及功能
62 0
Easyui validatebox增加对time、date、datetime的验证,时间格式化
Easyui validatebox增加对time、date、datetime的验证,时间格式化
|
Linux
time模块: 时间戳、结构化时间、格式化时间的获取与相互转化
time模块: 时间戳、结构化时间、格式化时间的获取与相互转化
137 0
|
存储 SQL 前端开发
解决方案:记录一下Date类型在传值时遇见的若干坑(String类型转为Date类型、mysql的表设置、UTC的设置)
解决方案:记录一下Date类型在传值时遇见的若干坑(String类型转为Date类型、mysql的表设置、UTC的设置)
解决方案:记录一下Date类型在传值时遇见的若干坑(String类型转为Date类型、mysql的表设置、UTC的设置)
|
存储 SQL 关系型数据库
【方向盘】MySql数据类型---日期时间类型的使用(含datetime和timestamp的区别) 0000-00-00 00:00:00问题解释(下)
【方向盘】MySql数据类型---日期时间类型的使用(含datetime和timestamp的区别) 0000-00-00 00:00:00问题解释(下)
【方向盘】MySql数据类型---日期时间类型的使用(含datetime和timestamp的区别) 0000-00-00 00:00:00问题解释(下)