110,538
社区成员
发帖
与我相关
我的任务
分享
//目标日期
DateTime dt = DateTime.Now;
//该年1月1日所在的周,定义为第一周,sunday为0,monday为1
DateTime dtFirst = new DateTime(dt.Year, 1, 1);
//目标日期距离第一天的天数
int daysCount = Convert.ToInt32((dt - dtFirst).TotalDays);
//将第一天的日期补齐
daysCount += Convert.ToInt32(dtFirst.DayOfWeek);
//目标日期所在的周
int weeksCount = daysCount / 7;
//目标日期所在的天
int dayIdx = Convert.ToInt32(dt.DayOfWeek);
//显示结果
Console.WriteLine("日期" + dt.ToShortDateString() + "是第" + (weeksCount + 1).ToString() + "周的第" + dayIdx.ToString() + "天。");
private int DatePart(System.DateTime dt)
{
int weeknow = Convert.ToInt32(dt.DayOfWeek);//今天星期几
int daydiff = (-1) * (weeknow + 1);//今日与上周末的天数差
int days = System.DateTime.Now.AddDays(daydiff).DayOfYear;//上周末是本年第几天
int weeks = days / 7;
if (days % 7 != 0)
{
weeks++;
}
//此时,weeks为上周是本年的第几周
return (weeks + 1);
}
DateTime dt = Convert.ToDateTime("2010-08-19");
Response.Write(DatePart(dt).ToString()); //结果:34