Multiple “intervals” are to be given as tasks. Calculate the maximum work time (minutes) to assign to one worker
Implement the method “int Problem2#getMaxWorkingTime(List intervals)”.

Return the maximum time to work on a
task when one worker takes it. 
Time assignment unit shall be based
on tasks. (i.e. Task assignment
shall be either to complete the
whole task, or to do nothing for
it.) 
The length of the interval, time
required to complete the task, is
calculated by subtracting “end time”
from “start time”. (e.g. If [12:00,
13:00] is given, the length of the
task is 60 min.) 
Return 0 if the argument is null or
an empty list.
In Figure 3 , work time is maximized when three tasks [“06:00”, “08:30”], [“09:00”, “11:30”], and [“12:30”, “14:00”], are assigned. Therefore, the answer is 390 (minutes).
Figure 3: An example of input and answer
6 7 8 9 10 11 12 13 14
  
 

Intervals = [06:0008:30], [08:0009:00], [09:0011:00], [09:001130], [12:3014:00], [10:3014:00] (which is shown in figure 3 also)
Total Intervals = 6
What I have tried so far
To me it appears to as a problem whose answer I can find simply by subtracting the Interval with max endtime i.e 14:00 with Interval which has smallest starttime, say 14:00 minus 06:00 answer is 480 minutes (since 6 to 14 has 8 hours in it so 8*60 minutes = 480 minutes) but the correct answer is 390 minutes
Can any one please help me explaining how to solve this problem…?
The thing which I want to understand is out of 6 Intervals why only those 3 Intervals (mentioned above) is selected ?