//时间枚举选项(DateType)的数据的初始化 private void InitDateType() { DateTypeenum WU = DateTypeenum.择时间段; DateTypeenum Day = DateTypeenum.Day; DateTypeenum ThreeDay = DateTypeenum.ThreeDay; DateTypeenum Week = DateTypeenum.Week; DateTypeenum HalfMonth = DateTypeenum.HalfMonth; DateTypeenum Month = DateTypeenum.Month; DateTypeenum All = DateTypeenum.All; DateType.Add(WU); DateType.Add(Day); DateType.Add(ThreeDay); DateType.Add(Week); DateType.Add(HalfMonth); DateType.Add(Month); DateType.Add(All); MyComBoxDate.SelectedIndex = 0; MyComBoxDate.ItemsSource = DateType; }
//根据所选时间筛选,本来想直接做成一个时间段筛选,但是先做成选项筛选,还有就是,时间筛选部分的算法我没完成,只是胡乱做了一个样例。 public static void ClassifyByTime(List <logentry> LogList, List <logentry> LogListTmp, DateTypeenum Date) { if (Date == DateTypeenum.All) { LogListTmp.AddRange(LogList); LogListTmp = LogList; return; } Regex regex = new Regex(@"^(\d*)-(\d*)-(\d*)T(\d*):(\d*):([\d\.]{5})\w*$"); foreach (logentry item in LogList) { Match match = regex.Match(item.Date); //Console.WriteLine(match.Groups[0].Value + " " + match.Groups[1].Value); switch (Date) { case DateTypeenum.Day: if (DateTime.Today.Day - 1 <= Convert.ToInt32(match.Groups[3].Value)) { LogListTmp.Add(item); } break; case DateTypeenum.ThreeDay: if (DateTime.Today.Day - 3 <= Convert.ToInt32(match.Groups[3].Value)) { LogListTmp.Add(item); } break; case DateTypeenum.Week: if (DateTime.Today.Day - 7 <= Convert.ToInt32(match.Groups[3].Value)) { LogListTmp.Add(item); } break; case DateTypeenum.HalfMonth: if (DateTime.Today.Day - 15 <= Convert.ToInt32(match.Groups[3].Value)) { LogListTmp.Add(item); } break; case DateTypeenum.Month: if (DateTime.Today.Month - 1 <= Convert.ToInt32(match.Groups[2].Value)) { LogListTmp.Add(item); } break; } } }