Я не уверен, правильно ли я понял ваш вопрос.Ваш ожидаемый результат отличается от того, что вы описали в своем вопросе.
Из вашего ожидаемого результата я получил следующие сдвиги: c(480, 450, 480, 480)
shifts <- lapply(0:14, function(x){
mapply(function(y,z){
interval((date1+days(x)+minutes(y)), (date1+days(x)+minutes(y+z)))
}, y = c(0,270,480,960), z = c(480, 450, 480, 480), SIMPLIFY = FALSE)
})
> shifts[[1]]
[[1]]
[1] 2000-01-01 05:30:00 EST--2000-01-01 13:30:00 EST
[[2]]
[1] 2000-01-01 10:00:00 EST--2000-01-01 17:30:00 EST
[[3]]
[1] 2000-01-01 13:30:00 EST--2000-01-01 21:30:00 EST
[[4]]
[1] 2000-01-01 21:30:00 EST--2000-01-02 05:30:00 EST
Так что я надеюсь, что это то, что вы ищете.