一个广告位的三种状态的判断

           需求分析:有一个广告位,后台添加。需要实现对各个广告期限的判断(一个周期为两个月,距离截止日期15天将予以提醒),因此会有未过期、将过期、和已过期的三种状态。前台页面每次进入时执行该方法,后台进入前也执行该方法。

           多重if else的判断,简单的实现该功能。

            

        private void check()
        {
            DateTime nowtime = DateTime.Now;
            string sql = "select pubDate,enddate,zsate,id from [K_U_VaulAdd]";
            DataTable dt = KingTop.Common.InfoHelper.ExecuteSQL(sql);
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                DateTime dateEnd = DateTime.Parse(dt.Rows[i]["enddate"].ToString());

                if (nowtime < dateEnd)
                {
                    if (nowtime >= dateEnd.AddDays(-15) && nowtime < dateEnd)
                    {
                        string sqlUp = "update [K_U_VaulAdd] set Zsate=1 where id=" + dt.Rows[i]["id"] + "";

                        int M = SQLHelper.ExecuteNonQuery(SQLHelper.ConnectionStringLocalTransaction, CommandType.Text, sqlUp, null);
                    }
                    else
                    {
                        string sqlUp = "update [K_U_VaulAdd] set Zsate=0 where id=" + dt.Rows[i]["id"] + "";

                        int N = SQLHelper.ExecuteNonQuery(SQLHelper.ConnectionStringLocalTransaction, CommandType.Text, sqlUp, null);

                    }

                }
                else
                {
                    string sqlUp = "update [K_U_VaulAdd] set Zsate=2 where id=" + dt.Rows[i]["id"] + "";
                    int j = SQLHelper.ExecuteNonQuery(SQLHelper.ConnectionStringLocalTransaction, CommandType.Text, sqlUp, null);

                }
            }
        }

  

         简要分析:以当前日期为标准,使用截止日期与之对比。

         当前日期等于或大于截止日期为过期  nowtime>=enddate.Addday(-15)    sate=2

          若不符合上述的条件,几位将过期   sate=1

         当前日期小于截止日期为未过期        nowtime<enddate                         返回为空(默认值为未过期 sate=0)          

          

          仅供参考

posted @ 2012-03-22 09:30  WikiZhao  阅读(535)  评论(0编辑  收藏  举报
Copyright©2013-2014 WikiZhao