Java Program to Calculate Difference Between Two Time Periods

In this program, you'll learn to calculate the difference between two time periods in Java.

To understand this example, you should have the knowledge of the following Java programming topics:

Example: Calculate Difference Between Two Time Periods

public class Time {

    int seconds;
    int minutes;
    int hours;

    public Time(int hours, int minutes, int seconds) {
        this.hours = hours;
        this.minutes = minutes;
        this.seconds = seconds;

    public static void main(String[] args) {

      // create objects of Time class
        Time start = new Time(8, 12, 15);
        Time stop = new Time(12, 34, 55);
        Time diff;

        // call difference method
        diff = difference(start, stop);

        System.out.printf("TIME DIFFERENCE: %d:%d:%d - ", start.hours, start.minutes, start.seconds);
        System.out.printf("%d:%d:%d ", stop.hours, stop.minutes, stop.seconds);
        System.out.printf("= %d:%d:%d\n", diff.hours, diff.minutes, diff.seconds);

    public static Time difference(Time start, Time stop)
        Time diff = new Time(0, 0, 0);

        // if start second is greater
        // convert minute of stop into seconds
        // and add seconds to stop second
        if(start.seconds > stop.seconds){
            stop.seconds += 60;

        diff.seconds = stop.seconds - start.seconds;

        // if start minute is greater
        // convert stop hour into minutes
        // and add minutes to stop minutes
        if(start.minutes > stop.minutes){
            stop.minutes += 60;

        diff.minutes = stop.minutes - start.minutes;
        diff.hours = stop.hours - start.hours;

        // return the difference time


TIME DIFFERENCE: 12:34:55 - 8:12:15 = 4:22:40

In the above program, we've created a class named Time with three member variables: hours, minutes, and seconds. As the name suggests, they store hours, minutes and seconds of a given time respectively.

The Time class has a constructor that initializes the value of hours, minutes, and seconds.

We've also created a static function difference that takes two Time variables as parameters, find the difference and returns it as Time class.

Did you find this article helpful?