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 (星期三)传入星期几
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 (星期三)传入星期几
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;
}
未来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;
}
}
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);
}
{
return DateTime.Now.Date.AddDays(day - (int)DateTime.Now.DayOfWeek);
}
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楼的朋友