• 编写时间类代码(实现时分秒的增与减)


    /**
     * 在程序中经常对时间进行操作但是没有时间类型的数据,那么我们可以自己实现一个时间类来满足程序中的需要。
     * 定义名为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;
        }
    }
  • 相关阅读:
    Regular polygon
    postgis数据库导出csv表再导入postgis
    如何让 GPT-4 帮你写出优质Prompt
    数据科学 - 数据可视化(持续更新)
    java:监听器Listener
    [免费专栏] Android安全之Linux+Windows安装r2Frida环境配置及使用
    数据结构与算法-单向链表的修改和删除操作
    鸿蒙打包hvigorw clean报错No npmrc file is matched in the current user folder解决
    springboot集成qq邮箱
    数据仓库面试题
  • 原文地址:https://blog.csdn.net/heliuerya/article/details/128030880