/// <summary> /// 根据日期获取名称(只判断日期) /// </summary> /// <param name="start">开始日期</param> /// <param name="end">结束日期</param> /// <returns></returns> public static string nameWithDateRange(DateTime start, DateTime end) { DateRangeAttribute attribute = attributeWithDateRange(start, end); if (attribute != null) { return(attribute.name); } return("Custom"); }
/// <summary> /// 根据日期区间获取显示值(只判断日期) /// </summary> /// <param name="start">开始日期</param> /// <param name="end">结束日期</param> /// <returns></returns> public static string displayWithDateRange(DateTime start, DateTime end) { DateRangeAttribute attribute = attributeWithDateRange(start, end); if (attribute != null) { return(attribute.display); } return("自定义"); }
/// <summary> /// 根据显示值获取日期区间 /// </summary> /// <param name="display">显示值</param> /// <param name="current">当前日期(结束日期)</param> /// <param name="start">输出开始日期</param> /// <param name="end">输出结束日期</param> public static void dateRangeWithDisplay(string display, DateTime current, out DateTime start, out DateTime end) { DateRangeAttribute attribute = attributeWithDisplay(display); start = DateTimeUtil.defaultTime(); end = DateTimeUtil.defaultTime(); if (attribute != null) { attribute.getDateRange(current, out start, out end); } }
/// <summary> /// 根据日期区间获取Attribute(只判断日期) /// </summary> /// <param name="start">开始日期</param> /// <param name="end">结束日期</param> /// <returns></returns> public static DateRangeAttribute attributeWithDateRange(DateTime start, DateTime end) { DateRangeAttribute custom = null; foreach (DateRangeAttribute attribute in attributes) { if (attribute.range_value < 0) { continue; } if (attribute.range_value == 0) { custom = attribute; continue; } switch (attribute.range_type) { case DateFieldType.Day: default: if (start.Date.AddDays(attribute.range_value).AddMilliseconds(-1).Date == end.Date) { return(attribute); } break; case DateFieldType.Month: if (start.Date.AddMonths(attribute.range_value).AddMilliseconds(-1).Date == end.Date) { return(attribute); } break; case DateFieldType.Year: if (start.Date.AddYears(attribute.range_value).AddMilliseconds(-1).Date == end.Date) { return(attribute); } break; } } return(custom); }