时间段控制代码

今天弄了个时间段控制,总感觉有问题,求大神指点啊:

if (request["Action"] == "PriceLast")
{
    int PriceId = int.Parse(request["PriceId"]);
    List<Control> PrcList = ccp.ModelList("id=1 order by id");
    string StatData = "";
    string EndData = "2099-06-16";
    for (int i = 0; i < PrcList.Count; i++)
    {
        if (PrcList[i].Id == PriceId)
        {
            //如果当前时间段上下都有Item的时候执行取上和取下
            if ((i - 1) != -1 && (i + 1) != PrcList.Count)
            {
                StatData = PrcList[i - 1].EndTime.Value.AddDays(1).ToString("yyyy-MM-dd");
                EndData = PrcList[i + 1].StartTime.Value.AddDays(-1).ToString("yyyy-MM-dd");
            }
            //如果价格唯一执行
            else if ((i - 1) == -1 && (i + 1) == PrcList.Count)
            {
                //如果当前设置时间大于当前时间就默认当前时间如果小于默认当前设置时间
                if ( PrcList[i].StartTime>DateTime.Now)
                {
                    StatData = DateTime.Now.ToString("yyyy-MM-dd");
                }
                else
                {
                    StatData = PrcList[i].StartTime.Value.ToString("yyyy-MM-dd");
                }
            }
            //如果当前条数为最后一条的时候执行
            else if ((i + 1) == PrcList.Count)
            {
                StatData = PrcList[i - 1].EndTime.Value.AddDays(1).ToString("yyyy-MM-dd");
            }
            //多条时间段价格情况下第一条情况执行
            else if (i - 1 == -1)
            {
                StatData = DateTime.Now.ToString("yyyy-MM-dd");
                //如果以下还有一条则取最后一条
                if ((i + 1) != PrcList.Count)
                {
                    EndData = PrcList[i + 1].StartTime.Value.AddDays(-1).ToString("yyyy-MM-dd");
                }
            }
        }
    }
    context.Response.Write("{StatData:'" + StatData + "',EndData:'" + EndData + "'}");
    context.Response.End();
}
原文地址:https://www.cnblogs.com/tom-cat/p/4058981.html