public datetime getdateByWeek(){
  DateTime now = DateTime.Now.Date;
   string[,] week = new string[,] { "monday",now}, {"tuesday",now.AddDays(1)}, {"wednesday",now.AddDays(2)}, {"thursday",now.AddDays(3)}, {"friday",now.AddDays(4)}, {"saturday",now.AddDays(5)}, {"sunday",now.AddDays(6)} };
return xxx
}
上面这个写法肯定是错的。只是想表达我想要表达的意思,希望传入一个星期几的参数可以返回最近的指定的日期,我自己写了一个烦复了,希望求一个比较简便的方法。比如   
DateTime theDate = getdateByWeek(3);//theDate =2013-07-24 (星期三)传入星期几

解决方案 »

  1.   

    CSDN的大神们呢?帮帮忙吧,谢谢啦!!!我想提高分数都改不了。
      

  2.   

    DateTime 里面有个 DayOfWeek 属性,可以直接获取是星期几。
      

  3.   

    那个我知道,我是想组一个一周内的星期几数组,通过输入星期的INDEX可返回日期。
      

  4.   

    当然是要本周五,所以必须计算由今天开始一周内的7个日期。下面是我写的方法,但我觉得它太麻烦了。
        public DateTime getDateByWeekIndex(int index)
        {        string[] week = new string[] { "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday" };
            DateTime  theDate= DateTime.Now.Date;
            DateTime[] weekdays = { theDate, theDate.AddDays(1), theDate.AddDays(2), theDate.AddDays(3), theDate.AddDays(4), theDate.AddDays(5), theDate.AddDays(6) };
            for (int i = 0; i < weekdays.Length; i++)
            {
                string current = weekdays[i].DayOfWeek.ToString().ToLower();
                if (current == week[index])
                {
                    return weekdays[i];
                }
            }
            return theDate;
        }
      

  5.   


    未来7天的日期: string s = DayOfWeek.Saturday.ToString();
                DateTime dt = DateTime.Now;
                for (int i = 0; i < 7; i++) 
                {
                    DateTime dt1 = dt.AddDays(i);
                    if (dt1.DayOfWeek.ToString() == s) 
                    {
                        Response.Write(dt1.ToString());
                        break;
                    }
                }
      

  6.   

    给你个简便方法 
      protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    DateTime dt = GetDateWeek(3);
                    Response.Write(dt);
                }
            }
            public DateTime GetDateWeek(int day)
            {
                DayOfWeek ds = DateTime.Today.DayOfWeek;
                int temp = Convert.ToInt32(ds);
                int days = temp>=day?temp-day:day-temp;     
                return DateTime.Now.AddDays(days);
            }
      

  7.   

    private DateTime GetDate(int day)
            {
                return DateTime.Now.Date.AddDays(day - (int)DateTime.Now.DayOfWeek);
            }
      

  8.   

    7楼和8楼的回答都很棒。不过还有一个问题,我想传入的INDEX其实是星期数,不是间隔天数。即传入GetDateWeek(5)//是想要返回最近的星期五。
      

  9.   


        private DateTime GetDateByWeekIndex(int day)//1
        {        int weekint= (int)DateTime.Now.DayOfWeek;//5
            int theDate = weekint <= day ? day - weekint : day + 7 - weekint;
            return DateTime.Now.Date.AddDays(theDate);
        }这样就应该对了。谢谢7.8楼的朋友