C# 需要帮忙找一年中的第二个星期三吗

C# 需要帮忙找一年中的第二个星期三吗,c#,datetime,C#,Datetime,我需要帮助找到今年的第二个星期三。这是我所做的,但似乎不起作用 DateTime baseDay = new DateTime(DateTime.Now.Year, 1, 5); int secondWed = 5 + ((12 - (int)baseDay.DayOfWeek) % 7); DateTime fullDate = new DateTime(DateTime.Now.Year, 1, secondWed); 请尝试以下方法: DateTime dt = new DateTime

我需要帮助找到今年的第二个星期三。这是我所做的,但似乎不起作用

DateTime baseDay = new DateTime(DateTime.Now.Year, 1, 5);
int secondWed = 5 + ((12 - (int)baseDay.DayOfWeek) % 7);
DateTime fullDate = new DateTime(DateTime.Now.Year, 1, secondWed);

请尝试以下方法:

DateTime dt = new DateTime(DateTime.Now.Year, 1, 8); //get second week of the year
while(dt.DayOfWeek != DayOfWeek.Wednesday) //loop until we find the next Wednesday
    dt = dt.AddDays(1);
这有帮助吗

    DateTime startDate = new DateTime(DateTime.Now.Year, 1, 1);
    int c = (int)startDate.DayOfWeek;
    int n = (int)DayOfWeek.Wednesday;
    int weekcount=2;
    int diff = (7 - c + n);
    int days= (diff > 7) ? diff % 7 : diff;
    startDate.AddDays((weekcount-1)*7+ days );

这种简单的方法也会奏效

int weekNumber = 2;
DateTime seekingDate = new DateTime(DateTime.Now.Year, 1, 1);
while (seekingDate.DayOfWeek != DayOfWeek.Wednesday)
    seekingDate = seekingDate.AddDays(1);

seekingDate.AddDays(7 * (weekNumber - 1));

当然,我会对工作日和周数使用变量。

我相信这也会起作用:

var date = new DateTime(DateTime.Now.Year,1,1);
if(date.DayOfWeek > DayOfWeek.Tuesday)
    date = date.AddDays(9 - (int)date.DayOfWeek);
else if(date.DayOfWeek < DayOfWeek.Tuesday)
    date = date.AddDays(2 - (int)date.DayOfWeek);
date = date.AddDays(7);
var date=new DateTime(DateTime.Now.Year,1,1);
如果(date.DayOfWeek>DayOfWeek.周二)
日期=date.AddDays(9-(int)date.DayOfWeek);
else if(date.DayOfWeek
基于Mark Ransom to的非常好的回答。这里没有循环

var year = 2011;
var firstDayOfMonth = new DateTime(year, 1, 1);
var daysUntilNextWednesday = DayOfWeek.Wednesday - firstDayOfMonth.DayOfWeek;
if (daysUntilNextWednesday < 0)
  daysUntilNextWednesday += 7;
var firstWednesdayOfMonth = firstDayOfMonth.AddDays(daysUntilNextWednesday);
var secondWednesdayOfMonth = firstWednesdayOfMonth.AddDays(7);
var年=2011年;
var firstDayOfMonth=新日期时间(年,1,1);
var DaysUntilNextweednesday=星期三的DayOfWeek-Month.DayOfWeek的第一天;
如果(天直到下两天<0)
daysUntilNextWednesday+=7;
var FirstWendesdayOfMonth=月的第一天添加天数(DaysUntilNextwendesDay);
var SecondWendesdayOfMonth=每月第一个星期三添加天数(7);

您可以将最后两行合并为一行,以获得更好的性能。

很抱歉,它不起作用,因为它返回的日期重复错误:您必须先搜索@mekici那条线是我用来作为我的code@bugz:您的代码既不类似于已接受的答案,也不类似于投票最多的答案。试试其中一个。上面有几个错误。什么是d?AddDays的结果被丢弃。即使我把“d”改为“n”,我也没有得到正确的答案,这也太棒了!尤其是没有环