morristech
3/1/2020 - 12:37 PM

TimeSpan.java

package com.company;

public class TimeSpan {

    private int hours;
    private int minutes;

    public TimeSpan(int hours, int minutes) {
        // minutes < 60
        if (minutes > 60) {
            throw new IllegalArgumentException("minutes need should be less 60");
        }
        this.hours = hours;
        this.minutes = minutes;
    }

    public void add(TimeSpan timeSpan) {
        hours = hours + timeSpan.hours + (timeSpan.minutes + minutes) / 60;
        minutes = (timeSpan.minutes + minutes) % 60;
    }

    public void sub(TimeSpan timeSpan) {
        if (timeSpan.hours > hours || timeSpan.hours == hours && timeSpan.minutes > minutes) {
            throw new IllegalArgumentException("diminished must be greater than deductible");
        } else {
            hours = hours - timeSpan.hours + (timeSpan.minutes + minutes) / 60;
            minutes = (minutes - timeSpan.minutes) % 60;
        }
        if (minutes < 0) {
            minutes += 60;
            hours--;
        }
    }

    public void mult(double times) {
        minutes += hours * 60;
        minutes *= times;
        hours = minutes / 60;
        minutes %= 60;
    }

    @Override
    public String toString() {
        return "TimeSpan{" +
                "hours=" + hours +
                ", minutes=" + minutes +
                '}';
    }
}