Java

OOP GUIDE / WORK

 

DURATION CLASS 2 SOLUTIONS

 

 

TASK – PART 1 – SETUP

 

No solution required.

 

 

TASK – PART 2 – PRIVATE METHOD (SIMPLIFY)

 

Here is my solution:

 

 

public class Duration

{

     private int hours;

     private int minutes;

     private int seconds;

    

     public Duration(int h, int m, int s)

     {

           hours = h;

           minutes = m;

           seconds = s;

           simplify();

     }

    

     public Duration(int m, int s)

     {

           hours = 0;

           minutes = m;

           seconds = s;

           simplify();

     }

    

     public Duration(int s)

     {

           hours = 0;

           minutes = 0;

           seconds = s;

           simplify();

     }

    

     public int getTotalSeconds()

     {

           return hours * 3600 + minutes * 60 + seconds;

     }

    

     public String toString()

     {

           return hours + "h" + minutes + "m" + seconds + "s";

     }

    

     private void simplify()

     {

           while (seconds >= 60)

           {

                seconds = seconds - 60;

                minutes++;

           }

          

           while (minutes >= 60)

           {

                minutes = minutes - 60;

                hours++;

           }

     }

}

 

 

 

 

TASK – PART 3 – TESTING YOUR SIMPLIFY METHOD

 

My solution is below.  Remember that we do not need to call simplify ourselves here.  It is automatically being called in the constructors.

 

 

public class DurationTester

{

     public static void main(String[] args)

     {

           Duration d1 = new Duration(2, 61, 5);

           System.out.println(d1);

    

           Duration d2 = new Duration(1, 5, 155);

           System.out.println(d2);

 

           Duration d3 = new Duration(1, 62, 121);

           System.out.println(d3);

     }

}

 

 

The above outputs:

 

 

3h1m5s

1h7m35s

2h4m1s