public void TestCurrentDate() { var date = new DateTime(2015, 1, 30, 10, 30, 5); var date1 = new DateTime(2015, 1, 30); var date2 = new DateTime(2015, 1, 30, 23, 59, 59); var date3 = new DateTime(2015, 1, 31); var date4 = new DateTime(2015, 1, 29); var date5 = new DateTime(2015, 1, 1); var date6 = new DateTime(2015, 1, 31); var date7 = new DateTime(2015, 1, 26); var date8 = new DateTime(2015, 2, 1); var date9 = new DateTime(2015, 1, 29); Assert.AreEqual(date1, date.StartOfDay()); Assert.AreEqual(date2, date.EndOfDay()); Assert.AreEqual(date3, date.NextDay()); Assert.AreEqual(date4, date.Yesterday()); Assert.AreEqual(date5, date.GetFirstDayOfMonth()); Assert.AreEqual(date6, date.GetLastDayOfMonth()); Assert.AreEqual(date7, date.GetFirstDayOfWeek()); Assert.AreEqual(date8, date.GetLastDayOfWeek()); Assert.AreEqual(date9, date.GetWeekday(DayOfWeek.Thursday)); }
/// <summary> /// 轉換為課程行事曆 /// </summary> /// <param name="SchoolYearSemesterDates"></param> /// <returns></returns> public void CreateClassBusy( DateTime dteStart, DateTime dteEnd, Dictionary<string,ClassEx> Classes) { ClassBusyDates = new List<ClassBusyDate>(); if (!Classes.ContainsKey(this.ClassName)) { TransferComment = "此筆資料找不到系統中對應的班級,無法進行轉換。"; return; } int StartWeekday = dteStart.GetWeekday(); DateTime dteStartWeekday = dteStart.StartOfWeek(DayOfWeek.Monday); int intWeekday = K12.Data.Int.Parse(Weekday); dteStartWeekday = intWeekday < StartWeekday ? dteStartWeekday = dteStartWeekday.AddDays(7).AddDays(intWeekday - 1) : dteStartWeekday = dteStartWeekday.AddDays(intWeekday - 1); while (dteStartWeekday <= dteEnd) { ClassBusyDate vClassBusyDate = new ClassBusyDate(); DateTime StartDateTime = new DateTime(); DateTime EndDateTime = new DateTime(); DateTime.TryParse(dteStartWeekday.ToShortDateString() + " " + StartTime, out StartDateTime); DateTime.TryParse(dteStartWeekday.ToShortDateString() + " " + EndTime, out EndDateTime); vClassBusyDate.WeekDay = K12.Data.Int.Parse(Weekday); vClassBusyDate.Period = K12.Data.Int.Parse(Period); vClassBusyDate.BeginDateTime = StartDateTime; vClassBusyDate.EndDateTime = EndDateTime; vClassBusyDate.BusyDesc = Desc; vClassBusyDate.ClassID = K12.Data.Int.Parse(Classes[ClassName].UID); ClassBusyDates.Add(vClassBusyDate); dteStartWeekday = dteStartWeekday.AddDays(7); } if (ClassBusyDates.Count > 0) TransferComment = "此筆資料已產生" + ClassBusyDates.Count + "筆班級不調代時段;開始日期為" + ClassBusyDates[0].BeginDateTime.ToShortDateString() + "、結束日期為" + ClassBusyDates[ClassBusyDates.Count - 1].BeginDateTime.ToShortDateString(); else TransferComment = "此筆資料未產生班級不調代時段"; }