Hi,
In response to your first question, below is an app that can get you started. It seems you do not have a lot of Shiny knowledge yet, so I suggest you check out the tutorials to get started and then ask questions here again with some actual Shiny code, as we of course are not going to write the whole app for you 
library(shiny)
library(dplyr)
#UI
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
dateRangeInput("dateRange", "Set the date range")
),
mainPanel(
dataTableOutput("myTable")
)
)
)
#SERVER
server <- function(input, output, session) {
#Load the original data
df <- data.frame(
fecha = seq(as.Date("1980-01-01"), as.Date("2020-05-31"), by = "quarter"),
datos = sample(c(1:100), size = 162, replace = TRUE)
)
#Set the default values in the UI
updateDateRangeInput(session, "dateRange",
start = min(df$fecha), end = max(df$fecha))
#Filter the table based-ff the user input
output$myTable = renderDataTable({
df %>% filter(between(fecha, input$dateRange[1], input$dateRange[2]))
})
}
shinyApp(ui, server)
Good luck,
PJ