Inserting Rows in Data Frame based on conditions

I have to split both the start and end dates into intervals of 30 days, and derive two new variables “split start date” and “split end date”.

I tried many things ,but did not work…

df_actual <- data.frame(
  order_id = "a", 
  start_date="01/05/2017", 
  ends_with="06/07/2017"
)


df_expected  <- data.frame(
  order_id = rep("a", 3), 
  start_date = rep("01/05/2017", 3), 
  ends_with = rep("06/07/2017", 3),
  split_start_date = c("01/05/2017", "31/05/2017", "30/06/2017"), 
  split_end_date = c("30/05/2017", "29/06/2017", "06/07/2017")
)

Inserting Rows in Data Frame based on conditions