/// <summary> /// 得到指定时间或者当前的时间与开学的时间状态 /// </summary> public SchollTime GetSchollTime(string time = null) { if (!DateTime.TryParse(time, out DateTime currenTime)) { //获取当前网络时间 currenTime = Convert.ToDateTime(Infrastructure.Extended.DatetimeExtened.GetNetDateTime()); } int year = currenTime.Year; //今天的年 int month = currenTime.Month; //今天的月 int term; //第几学期 string searchYear = string.Empty; if (month >= 9 || month <= 2) { term = 1; if (month >= 9) { searchYear = year + "-" + (year + 1); } else { searchYear = "-" + year; } } else { term = 2; searchYear = "-" + year; } //searchYear = term == 1 ? (year - 1) + "-" + year : "-" + year; Z_SchoolTime ZSchoolTime = SchoolTimeService.GetEntity(u => u.F_SchoolYear.Contains(searchYear)).FirstOrDefault(u => u.F_Term == term + ""); DateTime schoolTime = ZSchoolTime.F_SchoolTime; //开学时间 TimeSpan span = currenTime - schoolTime; //距离开学过去多久了 int days = span.Days; //距离开学过去几天了 int weeks = Convert.ToInt32(Math.Ceiling(days / 7.0)); //开学第几周了 string week = ((float)currenTime.DayOfWeek).ToString(CultureInfo.InvariantCulture); week = "0" == week ? "7" : week; weeks = weeks == 0 ? 1 : weeks; SchollTime schollTime = new SchollTime() { Week = week, Month = month, Term = term, Weeks = weeks, Year = year, SearchYear = searchYear, CurrentTime = currenTime }; return(schollTime); }
/// <summary> /// 获取今日或者指定日期下的所有课程 /// </summary> /// <param name="time">指定日期</param> /// <returns></returns> public List <Course> GetToDayCourseOrByDate(SchollTime schollTime = null) { schollTime = schollTime ?? GetSchollTime(); Z_SchoolTime ZSchoolTime = SchoolTimeService.GetEntity(u => u.F_SchoolYear.Contains(schollTime.SearchYear)).FirstOrDefault(u => u.F_Term == schollTime.Term + ""); DateTime schoolTime = ZSchoolTime.F_SchoolTime; //开学时间 DateTime endTime = ZSchoolTime.F_EndTime; //该学期结束时间 if (schollTime.CurrentTime >= endTime) { return(new List <Course>()); } TimeSpan span = schollTime.CurrentTime - schoolTime; //距离开学过去多久了 int days = span.Days; //距离开学过去几天了 int weeks = Convert.ToInt32(Math.Ceiling(days / 7.0)); //开学第几周了 var zCourses = GetEntity(u => u.F_SchoolYear.Contains(schollTime.SearchYear) && u.F_Term == schollTime.Term.ToString() && u.F_Week == schollTime.Week); //获取符合条件的课程信息 var rooms = RoomService.GetEntity(r => true); IQueryable <Course> list = (from r in rooms join course in zCourses on r.F_EnCode equals course.F_RoomCode select new Course() { Id = course.F_Id, TeacherName = course.F_TeacherName, Week = course.F_Week, CourseName = course.F_FullName, Grade = course.F_Grade, Major = course.F_Major, Classes = course.F_Class, RoomName = course.F_RoomName, RoomNo = r.F_RoomNo, CourseTimeType = course.F_CourseTimeType, EnCode = course.F_EnCode, BeginWeek = course.F_BeginWeek, EndWeek = course.F_EndWeek }); //var toDayCourses = new List<Course>(); var toDayCourses = SelectCourseInTheCurrentWeek(list.ToList(), schollTime); return(toDayCourses); }