C# LocalDate从节点时间中的月份和星期几开始

C# LocalDate从节点时间中的月份和星期几开始,c#,.net,date,dayofweek,nodatime,C#,.net,Date,Dayofweek,Nodatime,我希望根据“2014年3月的第二个星期一”这样的描述构建一个日期。 我该怎么做呢LocalDate似乎是一个开始,但正如我所说的,我希望提供每月的一周,而不是一年的一周。这当然可以改进,但这里有一个函数可以工作: public static LocalDate GetDay(int year, int month, IsoDayOfWeek dayOfWeek,

我希望根据“2014年3月的第二个星期一”这样的描述构建一个日期。
我该怎么做呢
LocalDate似乎是一个开始,但正如我所说的,我希望提供每月的一周,而不是一年的一周。

这当然可以改进,但这里有一个函数可以工作:

public static LocalDate GetDay(int year, int month, IsoDayOfWeek dayOfWeek,
                                                                    int instance)
{
    int daysInMonth = CalendarSystem.Iso.GetDaysInMonth(year, month);

    var ld = new LocalDate(year, month, 1);
    if (ld.IsoDayOfWeek != dayOfWeek)
        ld = ld.Next(dayOfWeek);
    for (int i = 1; i < instance && ld.Day + 7 <= daysInMonth; i++)
        ld = ld.PlusWeeks(1);
    return ld;
}
public static LocalDate GetDay(int年、int月、IsoDayOfWeek-dayOfWeek、,
int实例)
{
int daysInMonth=CalendarSystem.Iso.GetDaysInMonth(年,月);
var ld=新的本地日期(年、月、1);
if(ld.IsoDayOfWeek!=dayOfWeek)
ld=ld.下一个(星期一);

对于(int i=1;i