Esempio n. 1
0
        /// <summary>
        /// 返回增值(%)
        /// </summary>
        /// <param name="interval"></param>
        /// <returns></returns>
        public override double?GetIncrease(int days)
        {
            DateTime time     = LastDay.AddDays(-days);
            DateTime realTime = time;
            int      addDays  = -1;

            while (!HistoryDic.Keys.Contains(realTime))
            {
                realTime = time.AddDays(addDays);
                addDays  = addDays < 0 ? -addDays : -addDays - 1;
                if (addDays > 30)
                {
                    return(null);              //超过范围 返回空
                }
            }
            double?value    = HistoryDic[LastDay];
            double?hisValue = HistoryDic[realTime];

            if (days < 5)
            {
                hisValue = HistoryDic.Values.Take(days + 1).Last();           // 五天内按连续天数取
            }
            double?result = 100 * (value - hisValue) / hisValue;

            return(Math.Round((double)result, 2));
        }