/// <summary> /// 組成套表所需的日期資料 /// </summary> /// <param name="dateList">當月所有日期</param> /// <returns></returns> private static List <Dictionary <string, string> > getDutyReportDateDictionary(List <DateTime> dateList, Dictionary <DateTime, List <string> > empDictionary) { const string NEW_LINE_SYMBOL = "\n"; List <Dictionary <string, string> > dateDatas = new List <Dictionary <string, string> >(); var defaultData = new Dictionary <string, string>() { { "Date", "" }, { "CWeek", "" }, { "EWeek", "" }, { "NWeek", "" }, { "Emp", "" } }; foreach (var item in dateList) { var emp = ""; if (empDictionary != null && empDictionary.ContainsKey(item) && empDictionary[item].Count > 0) { emp = string.Join(NEW_LINE_SYMBOL, empDictionary[item]); } dateDatas.Add( new Dictionary <string, string>() { { "Date", item.ToString("MM/dd") }, { "CWeek", DateUtility.GetDayOfWeek(item, "C") }, { "EWeek", DateUtility.GetDayOfWeek(item, "E") }, { "NWeek", DateUtility.GetDayOfWeek(item) }, { "Emp", emp } }); } if (dateDatas != null && dateDatas.Count > 0 && dateDatas[0]["NWeek"] != "") { int nWeek = int.Parse(dateDatas[0]["NWeek"]); var dateDatas_New = new List <Dictionary <string, string> >(); for (var i = 0; i < nWeek; i++) { dateDatas_New.Add(defaultData); } foreach (var item in dateDatas) { dateDatas_New.Add(item); } dateDatas = dateDatas_New; } var dateDatasCount = dateDatas.Count; for (var j = 0; j < (35 - dateDatasCount); j++) { dateDatas.Add(defaultData); } return(dateDatas); }