时间减法(JAVA)

            在程序中,经常要对时间进行操作,但是并没有时间类型的数据。那么,我们可以自己实现一个时间类,来满足程 序中的需要:

(1)定义名为 MyTime 的类,其中应有三个整型成员:时(hour),分(minute),秒(second)。

(2)为了保证数据的安全性,这三个成员变量应声明为私有。

(3)为 MyTime 类定义构造方法,以方便创建对象时初始化成员变量。

(4)为 MyTime 类添加以下三个方法,分别对时、分、秒进行加减运算。subSecond(int second)、subMinute(int minute)、subHour(int hour)。注意时、分、秒可以大于或小于0,在进行计算时还应该注意进位。 如当前时间12:25:40,当调用subSecond(50)时,则时间变为:12:19:50;

(5)重写toString()方法,用于将时间信息打印出来。输出格式为:时:分:秒(12:20:40)

测试要求如下:

(1)初始化时间为 12:25:40

(2)减少80秒之后输出时间为:12:24:20

(3)减少70分钟后输出时间为:11:14:20

(4)减少25小时后输出时间为:10:14:20

代码示例:


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

    public MyTime(int hour, int minute, int second) {
        this.hour = hour;
        this.minute = minute;
        this.second = second;
    }
    public void subSecond(int second){
        this.second -= second;
        while(this.second >= 60){
            this.second -= 60;
            subMinute(-1);
        }
        while(this.second < 0){
            this.second += 60;
            subMinute(1);
        }
    }

    public void subMinute(int minute) {
        this.minute -= minute;
        while(this.minute >= 60){
            this.minute -= 60;
            subHour(-1);
        }
        while(this.minute < 0){
            this.minute += 60;
            subHour(1);
        }
    }

    public void subHour(int hour) {
        this.hour -= hour;
        while(this.hour >= 24){
            this.hour -= 24;
        }
        while(this.hour < 0){
            this.hour += 24;
        }
    }


    public String toString() {
        return (this.hour + ":" + this.minute + ":" + this.second);
    }
}

public class Main {
    public static void main(String[] args) {
        MyTime mytime =new MyTime(12,25,40);
        mytime.subSecond(80);
        System.out.println(mytime.toString());
        mytime.subMinute(70);
        System.out.println(mytime.toString());
        mytime.subHour(25);
        System.out.println(mytime.toString());
    }
}

效果:

(代码与效果图仅供参考)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值