如何判断一个时间为当年的第几周?

gang2yan 2010-08-19 03:57:37
比如: 时间:2010-08-19 为当年的第几周?
...全文
542 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿双2009 2010-08-19
  • 打赏
  • 举报
回复

//目标日期
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() + "天。");
wuyq11 2010-08-19
  • 打赏
  • 举报
回复
public int Weekofyear(DateTime dtime)
{
int weeknum = 1; //默认的周数从1开始
DateTime firstdate = DateTime.Parse(dtime.Year.ToString() + "-1" + "-1");
DayOfWeek firstweek = firstdate .DayOfWeek;
for (int i = (int)firstweek + 1; i <= dtime.DayOfYear; i = i + 7)
{
weeknum = weeknum + 1;
}
return weeknum ;
}
时间范围
zengbingling 2010-08-19
  • 打赏
  • 举报
回复
dayofyear / 7 + (dayofyear % 7) > 0 ? 1 : 0;
q107770540 2010-08-19
  • 打赏
  • 举报
回复

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
porschev 2010-08-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 whycom 的回复:]
dayofyear/7
[/Quote]

+1
Peter200694013 2010-08-19
  • 打赏
  • 举报
回复
DateTime dt = DateTime.Now;

Console.WriteLine(dt.DayOfYear/7);
haichunz 2010-08-19
  • 打赏
  • 举报
回复
dt = DateTime.Today.DayOfWeek.ToString();
whycom 2010-08-19
  • 打赏
  • 举报
回复

dayofyear/7

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧