Thanks all.
I used the following to solve the problem:
LOOP AT gt_output_main INTO gw_output_main WHERE budat LE s_budat-high.
gv_budat_difference = gw_output_main-budat - gv_budat_old.
* get the table index
gv_tabix = sy-tabix.
* check for any missing dates gap at beginning the user date selection
gv_budat_early_gap = gw_output_main-budat - s_budat-low.
READ TABLE gt_output_main INTO gw_output_main3 WITH KEY budat = s_budat-low.
IF sy-subrc <> 0.
IF gv_budat_early_gap > 1.
gv_budat_add_from = s_budat-low.
DO gv_budat_early_gap TIMES.
* add from s_budat-low
gw_output_main2-budat = gv_budat_add_from.
gw_output_main2-werks = p_werks.
APPEND gw_output_main2 to gt_output_main.
CLEAR gw_output_main2.
add 1 to gv_budat_add_from.
ENDDO.
CLEAR gv_budat_add_from.
CLEAR gv_budat_early_gap.
ENDIF.
CLEAR gw_output_main3.
ENDIF.
* check for any missing dates gap in between the user date selection
IF gv_tabix > 1 AND gv_budat_difference > 1.
* add missing dates gap
gv_budat_add_from = gv_budat_old.
* add until the date shown from zmm_ul_ps_ullage
gv_budat_difference = gv_budat_difference - 1.
DO gv_budat_difference TIMES.
add 1 to gv_budat_add_from.
gw_output_main2-budat = gv_budat_add_from.
gw_output_main2-werks = p_werks.
APPEND gw_output_main2 to gt_output_main.
CLEAR gw_output_main2.
ENDDO.
CLEAR gv_budat_add_from.
ENDIF.
SORT gt_output_main by budat ASCENDING.
gv_budat_old = gw_output_main-budat.
CLEAR gw_output_main.
CLEAR gv_budat_difference.
ENDLOOP.
* check for any missing dates gap at the end of user date selection
DESCRIBE TABLE gt_output_main LINES gv_budat_end.
READ TABLE gt_output_main INTO gw_output_main INDEX gv_budat_end.
IF gw_output_main-budat <> s_budat-high.
gv_budat_difference = s_budat-high - gw_output_main-budat.
gv_budat_add_from = gw_output_main-budat.
DO gv_budat_difference TIMES.
add 1 to gv_budat_add_from.
gw_output_main2-budat = gv_budat_add_from.
gw_output_main2-werks = p_werks.
APPEND gw_output_main2 to gt_output_main.
CLEAR gw_output_main2.
SORT gt_output_main by budat ASCENDING.
ENDDO.
CLEAR gv_budat_add_from.
ENDIF.
CLEAR gw_output_main.