recentMoverDates <- function(period_type = "quarter",
period_selected_day = NULL){
# Period type will month or quarter.
# In the future day, week, and year could be selected as well but seems to be less needed
period_type <- "quarter"
if(is.null(period_selected_day)){
period_selected_day <- today()
}
period_selected_year <- year(period_selected_day)
if(period_type == "month"){
period_step <- 1/12
time_period_label <- NULL
} else if(period_type == "quarter"){
period_step <- 1/4
time_period_label <- "Q"
}
period_selected <- paste0(period_type, "('", period_selected_day, "')") %>%
parse(text = .) %>%
eval
period_selected_ym <- yearmon(period_selected_year) + (period_selected-1) * period_step
period_selected_start <- as.Date(period_selected_ym)
period_previous_ym <- period_selected_ym - period_step
period_previous_start <- as.Date(period_previous_ym)
period_previous <- paste0(period_type, "('", period_previous_start, "')") %>%
parse(text = .) %>%
eval
period_previous_year <- year(period_previous_start)
period_next_ym <- period_selected_ym + period_step
period_next_start <- as.Date(period_next_ym )
period_last_year_ym <- period_selected_ym - 1
period_last_year_start <- as.Date(period_last_year_ym)
period_last_year_end <- (period_next_ym - 1) %>% as.Date()
period_last_year_year <- year(period_last_year_start)
current_date <- today()
if(period_next_start > current_date){
period_next_start <- current_date+1
}
start_dates <- c(period_last_year_start, period_previous_start, period_selected_start)
end_dates <- c(period_last_year_end, period_selected_start, period_next_start)
if(period_type == "month"){
time_period <- c(as.character(period_last_year_ym),
as.character(period_previous_ym),
as.character(period_selected_ym))
} else if(period_type == "quarter"){
time_period <- c(paste0("Q", period_selected, " ", period_last_year_year),
paste0("Q", period_previous, " ", period_previous_year),
paste0("Q", period_selected, " ", period_selected_year))
}
output <- list("start_dates" = start_dates, "end_dates" = end_dates, "time_period" = time_period)
return(output)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.