/// <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); } }
/// <summary> /// Add a (time,y) data to serie. /// |添加(time,y)数据到指定的系列中。 /// </summary> /// <param name="serieIndex"></param> /// <param name="time"></param> /// <param name="yValue"></param> /// <param name="dataName"></param> /// <param name="dataId"></param> /// <returns></returns> public SerieData AddData(int serieIndex, DateTime time, double yValue, string dataName = null, string dataId = null) { var xValue = DateTimeUtil.GetTimestamp(time); return(AddData(serieIndex, xValue, yValue, dataName, dataId)); }