Ejemplo n.º 1
0
        public string GetFormatterDateTime(int labelIndex, double value, double minValue, double maxValue)
        {
            var timestamp  = (int)value;
            var dateTime   = DateTimeUtil.GetDateTime(timestamp);
            var dateString = string.Empty;

            if (string.IsNullOrEmpty(numericFormatter))
            {
                dateString = DateTimeUtil.GetDateTimeFormatString(dateTime, maxValue - minValue);
            }
            else
            {
                dateString = dateTime.ToString(numericFormatter);
            }
            if (!string.IsNullOrEmpty(m_Formatter))
            {
                var content = m_Formatter;
                FormatterHelper.ReplaceAxisLabelContent(ref content, dateString);
                return(GetFormatterFunctionContent(labelIndex, value, m_TextLimit.GetLimitContent(content)));
            }
            else
            {
                return(GetFormatterFunctionContent(labelIndex, value, m_TextLimit.GetLimitContent(dateString)));
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 根据给定的最大最小时间戳范围,计算合适的Tick值
        /// </summary>
        /// <param name="list"></param>
        /// <param name="minTimestamp"></param>
        /// <param name="maxTimestamp"></param>
        /// <param name="splitNumber"></param>
        internal static void UpdateTimeAxisDateTimeList(List <double> list, int minTimestamp, int maxTimestamp, int splitNumber)
        {
            list.Clear();
            var range = maxTimestamp - minTimestamp;

            if (range <= 0)
            {
                return;
            }
            if (splitNumber <= 0)
            {
                splitNumber = 1;
            }
            var dtMin = DateTimeUtil.GetDateTime(minTimestamp);
            var dtMax = DateTimeUtil.GetDateTime(maxTimestamp);

            if (range >= ONE_YEAR * MIN_TIME_SPLIT_NUMBER)
            {
                var num     = Math.Max(range / (splitNumber * ONE_YEAR), 1);
                var dtStart = new DateTime(dtMin.Year + 1, 1, 1);
                while (dtStart.Ticks < dtMax.Ticks)
                {
                    list.Add(DateTimeUtil.GetTimestamp(dtStart));
                    dtStart = dtStart.AddYears(num);
                }
            }
            else if (range >= ONE_MONTH * MIN_TIME_SPLIT_NUMBER)
            {
                var num     = Math.Max(range / (splitNumber * ONE_MONTH), 1);
                var dtStart = new DateTime(dtMin.Year, dtMin.Month, 1).AddMonths(1);
                while (dtStart.Ticks < dtMax.Ticks)
                {
                    list.Add(DateTimeUtil.GetTimestamp(dtStart));
                    dtStart = dtStart.AddMonths(num);
                }
            }
            else if (range >= ONE_DAY * MIN_TIME_SPLIT_NUMBER)
            {
                var tick           = GetTickSecond(range, splitNumber, ONE_DAY);
                var startTimestamp = (minTimestamp - minTimestamp % tick) + tick;
                AddTickTimestamp(list, startTimestamp, maxTimestamp, tick);
            }
            else if (range >= ONE_HOUR * MIN_TIME_SPLIT_NUMBER)
            {
                var tick           = GetTickSecond(range, splitNumber, ONE_HOUR);
                var startTimestamp = (minTimestamp - minTimestamp % tick) + tick;
                AddTickTimestamp(list, startTimestamp, maxTimestamp, tick);
            }
            else if (range >= ONE_MINUTE * MIN_TIME_SPLIT_NUMBER)
            {
                var tick           = GetTickSecond(range, splitNumber, ONE_MINUTE);
                var startTimestamp = (minTimestamp - minTimestamp % tick) + tick;
                AddTickTimestamp(list, startTimestamp, maxTimestamp, tick);
            }
            else
            {
                var tick           = GetTickSecond(range, splitNumber, ONE_SECOND);
                var startTimestamp = (minTimestamp - minTimestamp % tick) + tick;
                AddTickTimestamp(list, startTimestamp, maxTimestamp, tick);
            }
        }