C#如何获取具体的某天是一个月份的第几个星期几

jame_peng 2007-06-29 10:23:15
如:8月的第二个星期三,我这个主要是做预订系统
...全文
596 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
vrhero 2007-06-29
  • 打赏
  • 举报
回复
我没加参数边界检查...自己写吧...

/// <summary>
/// 返回指定的日期
/// </summary>
/// <param name="year">年(1 到 9999)</param>
/// <param name="month">月(1 到 12)</param>
/// <param name="index">索引(1 到 5)</param>
/// <param name="week">星期, DayOfWeek 枚举值</param>
/// <returns></returns>
public DateTime GetDayOf(int year, int month, int index, DayOfWeek week)
{
DateTime dt = new DateTime(year, month, 1);
DayOfWeek dw = dt.DayOfWeek;
dt = dt.AddDays((index - 1) * 7 - (int)dw + (int)week);
return dt;
}
-过客- 2007-06-29
  • 打赏
  • 举报
回复
你这里有不明确的地方,比如说2007-06-01,这是6月第一个星期五,那2007-06-05是6月第一个星期二,还是6月第二个星期二

也就是你这里的第几个是第几周的星期几,还是星期几在这个月出现的次数

这点确定了,自己写个方法就很容易了
mengxiang1618 2007-06-29
  • 打赏
  • 举报
回复
public static string xingqi(string d) //判断星期几
{
string reslut = null;
string xq = Convert.ToDateTime(d).DayOfWeek.ToString();
switch(xq)
{
case "Monday":
reslut = "1";
break;
case "Tuesday" :
reslut = "2";
break;
case "Wednesday" :
reslut = "3";
break;
case "Thursday" :
reslut = "4";
break;
case "Friday" :
reslut = "5";
break;
case "Saturday":
reslut = "6";
break;
case "Sunday":
reslut = "7";
break;
default:
reslut = "7";
break;
}
return reslut;

}
public static int WeekOfMonth(string d) //第几周
{
DateTime day = Convert.ToDateTime(d);
int daysOfWeek=7;
if ( day.AddDays(0-daysOfWeek).Month < day.Month)
return 1;
if ( day.AddDays(0-2*daysOfWeek).Month < day.Month)
return 2;
if ( day.AddDays(0-3*daysOfWeek).Month < day.Month )
return 3;
if ( day.AddDays(0-4*daysOfWeek).Month < day.Month)
return 4;

return 5;
}
NekChan 2007-06-29
  • 打赏
  • 举报
回复
首先需要确认,如何确定某个月的第一个星期,是完整的一周算一个星期还是有一天在本月,则算本月的星期?
yangsongshuang 2007-06-29
  • 打赏
  • 举报
回复
是得自己写方法了
rononwang 2007-06-29
  • 打赏
  • 举报
回复
...自己写个算法就行咯

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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