/** * 在程序中经常对时间进行操作但是没有时间类型的数据,那么我们可以自己实现一个时间类来满足程序中的需要。 * 定义名为MyTime的类其中应有三个整形成员 时(hour)分(minute)秒(second),为了保证数据的安全性这三个成员变量应为私有。 * 为MyTime类定义构造方法以便创建对象时初始化成员变量。在定义display()方法用于将时间信息打印出来。 * 为MyTime类添加以下方法: * 加秒方法:addSecond(int sec) * 加分方法:addMinute(int min) * 加时方法:addHour(int hou) * 减秒方法:subSecond(int sec) * 减分方法:subMinute(int min) * 减时方法:subHour(int hou) * 分别对时分秒进行加减运算。 */ //这里主要锻炼的是:set方法用来修改对象属性的值,get方法是用来获取对象属性的值。 //测试类 class MyTimeText{ public static void main(String[] args) { //用有参数构造方法创建时间对象 MyTime myTime = new MyTime(3,21,10); //打印时间信息 myTime.display(); //增加12000秒---->200分钟---->3小时20分 myTime.addSecond(12000); myTime.display(); MyTime myTime1 = new MyTime(); myTime1.display(); MyTime myTime2 = new MyTime(100,200,30); myTime2.display(); } } /* 程序运行结果: 10时21分3秒 13时41分3秒 0时0分0秒 0时0分0秒 */ //MyTime类 class MyTime{ private int second; private int minute; private int hour; //加秒方法 public void addSecond(int sec){ //获取原有时间对象的秒数 int oldSecond = getSecond(); //在原秒数的基础之上加上增加的秒数,得到新秒数。 int newSecond = oldSecond + sec; //判断新秒数 if (newSecond < 60) { //如果新秒数小于60秒 //直接修改当前对象的秒数 setSecond(newSecond); }else if (newSecond == 60){ //如果新秒数等于60 //给当前对象的分钟数加1 this.addMinute(1); //并且修改秒数为0 setSecond(0); }else if (newSecond > 60){ //如果新秒数大于60 //给当前对象的分钟数增加值为(newSecond / 60) addMinute(newSecond / 60); //修改秒数为(newSecond % 60) setSecond(newSecond % 60); } } //加分方法 public void addMinute(int min){ //获取当前时间对象的分钟数 int oldMinute = getMinute(); //在原有的分钟数基础上加上新增的分钟数,得到新的分钟数 int newMinute = oldMinute + min; if (newMinute < 60){ //如果新的分钟数小于60 //修改当前时间对象的分钟数为新的分钟数 setMinute(newMinute); }else if (newMinute == 60){ //如果新的分钟数等于60 //将当前时间对象的时钟数加1 addHour(1); //并修改当前时间对象的分钟数为0 setMinute(0); }else if (newMinute > 60){ //如果新的分钟数大于60 //将当前时间对象的时钟数增加(newMinute / 60) addHour(newMinute / 60); //将当前时间对象的分钟数修改为(newMinute % 60) setMinute(newMinute % 60); } } //加时方法 public void addHour(int hou){ //获取当前时间对象的时钟数 int oldHour = getHour(); //在当前时间对象的时钟数上增加新增时钟数 int newHour = oldHour + hou; if (newHour < 24){ //如果新时钟数小于24 setHour(newHour); }else if (newHour == 24){ //如果新时钟数等于24 //这里应该将日期增加1天(代码略) //修改时钟数为0 setHour(0); }else if (newHour > 24){ //如果新时钟数大于24 //将日期增加(newHour / 24)(略) //修改时钟数为(newHour % 24) setHour(newHour % 24); } } // 天加1,年加1等就不再写了 // 秒减、分减、时减也不再写了 // 秒减 public void subSecond(){ //具体实现略 } // 分减 public void subMinute(){ //具体实现略 } // 时减 public void subHour(){ //具体实现略 } // 打印时减方法 public void display(){ System.out.println(getHour() + "时" + getMinute() + "分" + getSecond() + "秒"); } // 无参构造方法 public MyTime() { this(0,0,0); } // 有参构造方法 public MyTime(int second, int minute, int hour) { //如果给定的时间不正确,对时分秒赋默认值 if (second >= 60 || second < 0 || minute >= 60 || minute < 0 || hour >= 24 || hour < 0 ){ this.second = 0; this.minute = 0; this.hour = 0; }else { this.second = second; this.minute = minute; this.hour = hour; } } // set and get 方法 public int getSecond() { return second; } public void setSecond(int second) { this.second = second; } public int getMinute() { return minute; } public void setMinute(int minute) { this.minute = minute; } public int getHour() { return hour; } public void setHour(int hour) { this.hour = hour; } }
编写时间类代码(实现时分秒的增与减)
于 2022-11-25 07:18:39 首次发布
该博客介绍了如何在Java中自定义一个时间类MyTime,包含小时、分钟和秒的私有成员变量,并提供了构造方法、显示方法以及加减秒、分钟和小时的方法。通过实例展示了如何创建MyTime对象并进行时间操作,如增加12000秒,以及创建和打印不同时间对象。博客强调了set和get方法在对象属性修改和获取中的作用。
摘要由CSDN通过智能技术生成