R/sparse_days_xiaoli.R

#' 解析校历文字说明中的日期
#' @author lgm
#' @param s string
#' @return string date text strings
#' @export
#' @examples
#' s201801 = "一、教职工9月1日正式上班。全校本科生于9月1和2日报到注册,9月3日正式上课。本学期普通本科生上课16周,12月21日课程结束(当天要上课);普通本科生期末复习和院考时间为12月22日至29日;考试时间为:2019年1月2日至3日(二专);2019年1月4日至15日。二、本科新生9月8、9日报到,9月10日入学教育,9月11日至27日军训,9月28日至30日新生教育,10月8日正式上课,12月28日课程结束(当天要上课)。新生上课共12周。三、2016、2017级研究生9月7日报到注册, 9月10日正式上课;2018级研究生新生9月8、9日报到,9月10日入学教育,9月11日正式上课。各年级研究生上课共16周。2019年1月2-11日为机动教学与课程考核时间。四、9月22日至24日中秋节放假;10月1日至7日国庆节放假,9月29日(星期六)补周四的课,9月30日(星期日)补周五的课;10月18日至20日为校运动会时间;2018年12月30日至2019年元月1日元旦放假。因法定节假日放假所差课程由教师自行安排补课,确保教学任务完成。五、2019年元月16日寒假开始。"
#' sparse_days_xiaoli(s201801)
#'
sparse_days_xiaoli = function(s){
	suppressPackageStartupMessages(library(tidyverse))
	lines = str_replace_all(s, "\\n","") %>%
		str_split(pattern = "[,;。]")  %>%
		map(~.x[str_detect(.x,"月")]) %>%
		unlist()

	holidays <- lines %>% .[str_detect(.,"放假")]
	buke <- lines %>% .[str_detect(.,"补")]
	begins <- lines %>% .[str_detect(.,"正式上课")]

	return(list(all = lines, holidays = holidays,buke = buke,begins=begins))
}
Gabegit/gmtools documentation built on May 6, 2019, 5:32 p.m.