Пример #1
0
        /// <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");
        }
Пример #2
0
        /// <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("自定义");
        }
Пример #3
0
        /// <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);
            }
        }
Пример #4
0
        /// <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);
        }