Какой самый простой способ рассчитать понедельник в первую неделю года - PullRequest
9 голосов
/ 14 апреля 2011

я хочу пропустить год и получить дату назад, которая представляет первый понедельник первой недели

, поэтому:

  • Если передано 2011 , я бы вернулся 3 января 2011
  • Если передать 2010 , я бы вернулся 4 января 2010

Ответы [ 2 ]

11 голосов
/ 14 апреля 2011

Попробуйте это для решения без цикла:

public DateTime FirstMonday(int year)
{
    DateTime firstDay = new DateTime(year, 1, 1);

    return new DateTime(year, 1, (8 - (int)firstDay.DayOfWeek) % 7 + 1);
}
9 голосов
/ 14 апреля 2011
private DateTime GetFirstMondayOfYear(int year)
{
    DateTime dt = new DateTime(year, 1, 1);

    while (dt.DayOfWeek != DayOfWeek.Monday)
    {
        dt = dt.AddDays(1);
    }

    return dt;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...