如何从c#中获取年份和周数的月份数?

Lor*_*ris 11 c# datetime

正如标题所说,考虑到年份和周数,我如何获得月份数?

编辑:如果一周过了两个月,我想要一个星期的第一天所在的月份.

编辑(2):这是我获得周数的方式:

CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstDay, DayOfWeek.Monday);
Run Code Online (Sandbox Code Playgroud)

我只是想反过来​​.

Joh*_*sch 9

如果您假设您定义的星期的第一天与一年的第一天相同,那么这将起作用:

int year = 2000;
int week = 9;
int month = new DateTime(year, 1, 1).AddDays(7 * (week - 1)).Month;
Run Code Online (Sandbox Code Playgroud)

显然,一个真正的答案取决于你如何定义一周的第一天,以及你如何定义一周如何重叠多个月.


Lor*_*ris 5

这就是我最终所做的:

static int GetMonth(int Year, int Week)
{
    DateTime tDt = new DateTime(Year, 1, 1);

    tDt.AddDays((Week - 1) * 7);

    for (int i = 0; i <= 365; ++i)
    {
        int tWeek = CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(
            tDt, 
            CalendarWeekRule.FirstDay, 
            DayOfWeek.Monday);
        if (tWeek == Week)
            return tDt.Month;

        tDt = tDt.AddDays(1);
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我更喜欢更简单的东西,但它有效:)