#' 生产校历周次和教学日期
#'
#' @description 去除了假日,加上补课日期,用于教学进度表
#' @author lgm
#' @param xiaoli_begin_date xiaoli begin date of week 1
#' @param class_begin_date lesson begin date
#' @param holidays holidays vector
#' @param add_dates add days to have lessons
#' @return string week and date
#' @export
#' @examples
#' hol_guoqing <- as.character(seq(as.Date("2018-10-01"),length.out = 7,by=1))
#' hol_xiaoyun <- as.character(seq(as.Date("2018-10-18"),length.out=3,by=1))
#' hol_yuandan <- as.character(seq(as.Date("2018-12-30"),length.out = 3,by=1))
#' hol_zhongqiu <- as.character(seq(as.Date("2018-9-22"),length.out = 3,by=1))
#' holidays <- c(hol_guoqing,hol_xiaoyun,hol_yuandan,hol_zhongqiu)
#' add_dates_Fri <- c("2018-09-30") # 补周五的课
#' add_dates_Thu <- c("2018-09-29") # 补周四的课
#' add_dates_Mon <- c("2018-12-29") #补周一课
#' gen_xiaoliWeeks_teachDate("2018-09-01","2018-09-03",holidays,add_dates="")
#' gen_xiaoliWeeks_teachDate("2018-09-01","2018-09-07",holidays,add_dates=add_dates_Fri)
#'
gen_xiaoliWeeks_teachDate <- function(xiaoli_begin_date="",
class_begin_date,
holidays="",
add_dates=""){
library(magrittr)
#all_weeks <- as.character(seq(as.Date("2018-09-01"),length.out = 7*20,by=1))
all_weeks <- as.character(seq(as.Date(xiaoli_begin_date),length.out = 7*20,by = 1))
week_list = list()
for (i in seq(1,length(all_weeks),by=7)){
week_list <- c(week_list,list(all_weeks[i:(i+6)]))}
names(week_list) <- c(paste0("第",1:20,"周"))
tdate <- gmdata::teach_date(begin.date=class_begin_date,
holidays=holidays,
add_dates=add_dates,
cat=FALSE)
tdate <- stringr::str_replace_all(tdate, "[年月]","-") %>% stringr::str_replace_all("日","")
res <- tdate %>% paste(purrr::map(tdate,~names(week_list[grepl(., week_list)])),"\t",.,"\n")
cat(res)
return(res)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.