您的位置:首页 > 其它

根据一年的周数得到日期

2010-10-19 21:31 225 查看
public void BindWeek(int curWeek)
{
ddlWeek.Items.Clear();
ListItem li;
for (int i = 1; i < 54; i++)//一年53周
{
li = new ListItem();
string[] arr = GetWeek(Convert.ToInt32(ddlYear.SelectedItem.Text), i);
li.Text = i.ToString() + "(" + arr[0].Substring(5) + "--" + arr[1].Substring(5) + ")";
li.Value = i.ToString();
ddlWeek.Items.Add(li);
}
ddlWeek.SelectedValue = curWeek.ToString();
}
//根据第几周 查找开始和结束日期
public static string[] GetWeek(int nYear, int nNumWeek)
{
string[] inti = new string[2];
DateTime dt = new DateTime(nYear, 1, 1);
dt = dt + new TimeSpan((nNumWeek - 1) * 7, 0, 0, 0);
DateTime dtWeekStart = dt.AddDays(-(int)dt.DayOfWeek + (int)DayOfWeek.Monday);
DateTime dtWeekeEnd = dt.AddDays((int)DayOfWeek.Saturday - (int)dt.DayOfWeek + 1);
inti[0] = dtWeekStart.ToString("yyyy.MM.dd");
inti[1] = dtWeekeEnd.ToString("yyyy.MM.dd");
return inti;
}
//当前日期的周数
public static int WeekOfYear(DateTime curDay)
{
int firstdayofweek = Convert.ToInt32(Convert.ToDateTime(curDay.Year.ToString() + "- " + DateTime.Now.Month + "-" + DateTime.Now.Day).DayOfWeek);
int days = curDay.DayOfYear;
int daysOutOneWeek = days - (7 - firstdayofweek);
if (daysOutOneWeek <= 0)
{
return 1;
}
else
{
int weeks = daysOutOneWeek / 7;
if (daysOutOneWeek % 7 != 0)
weeks++;
return weeks + 1;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: