今天是9.22。星期3,要求离上个月22号最近的星期3怎么写代码,详细最好,思路也行

解决方案 »

  1.   

    取得星期几
    int i = Convert.ToInt32(DateTime.Now.DayOfWeek)
    根据如果得到1.就是DateTime.Now.AddMonths(-1).AddDays(3-i);
      

  2.   

                DateTime dt1 = Convert.ToDateTime(this.textBox1.Text);            //上个月的今天
                DateTime dt2 = dt1.AddMonths(-1);            if ((Int32)dt2.DayOfWeek - (Int32)dt1.DayOfWeek > 3)
                {
                    MessageBox.Show(dt2.AddDays(-1-(Int32)dt1.DayOfWeek + (Int32)dt2.DayOfWeek).ToString());
                }
                else
                {
                    MessageBox.Show(dt2.AddDays((Int32)dt1.DayOfWeek-(Int32)dt2.DayOfWeek ).ToString());            }
      

  3.   


     DateTime dt = new DateTime(2010,9,22);
               Response.Write(String.Format("{0:yyyy-MM-dd}是星期{1}",dt,dt.DayOfWeek.ToString("D")));
               Response.Write("<br/>");
               dt = dt.AddMonths(-1);
               if (Convert.ToInt32(dt.DayOfWeek.ToString("D")) == 3)
               { Response.Write("上个月最近的星期三就是今天"); }
               else if (Convert.ToInt32(dt.DayOfWeek.ToString("D")) < 3)
               {
                   Response.Write(String.Format("上个月最近的星期三是{0:yyyy-MM-dd}", dt.AddDays(3 - Convert.ToInt32(dt.DayOfWeek.ToString("D")))));
               }
               else
               {
                   Response.Write(String.Format("上个月最近的星期三是{0:yyyy-MM-dd}", dt.AddDays(3 - Convert.ToInt32(dt.DayOfWeek.ToString("D")))));
               }
               Response.End();
      

  4.   

    楼主上个代码多写了一个判断,用下面这个:   DateTime dt = new DateTime(2010,9,22);
               Response.Write(String.Format("{0:yyyy-MM-dd}是星期{1}",dt,dt.DayOfWeek.ToString("D")));
               Response.Write("<br/>");
               dt = dt.AddMonths(-1);
               if (Convert.ToInt32(dt.DayOfWeek.ToString("D")) == 3)
               { Response.Write("上个月最近的星期三就是今天"); }
               else
               {
                   Response.Write(String.Format("上个月最近的星期三是{0:yyyy-MM-dd}", dt.AddDays(3 - Convert.ToInt32(dt.DayOfWeek.ToString("D")))));
               }
               Response.End();