Golang: get a slice of tuples (hour, minute) : I've got a problem that I couldn't resolve.

I've got a list of minutes:

    minutes := int{0, 30} // Minutes are 0 and 30

And a four parameters: `start`, `startBreak`, `stop`, `stopBreak`:

    start := types.NewTuple(9, 30) // It represents "9:30"
    startBreak := types.NewTuple(12, 0) // It represents "12:00"
    stop := types.NewTuple(21, 0) // It represents "21:00"
    stopBreak := types.NewTuple(14, 30) // It represents "14:30"

I want to get a slice of tuples `(hour, minutes)` using all the minutes in the `minutes` slice and they must not be included in the range `startBreak-stopBreak` (it can be equal to `startBreak` or `stopBreak`, so the range will become `12:30, 13:00, 13:30, 14:00`) and `stop-start` (it can be equal to `start` and `stop`, so the range will become `21:30, 22:00, 22:30, ..., 8:30, 9:00`). 

For example, using those four parameters, the final result will be:

    9:30, 10:00, 10:30, 11:00, 11:30, 12:00, 14:30, 15:00, 15:30, 16:00, 16:30, 17:00, 17:30, 18:00, 18:30, 19:00, 19:30, 20:00, 20:30, 21:00

Thank you all!