Французский первый день недели - PullRequest
0 голосов
/ 05 апреля 2020

Я смотрю с сегодняшнего дня, чтобы узнать первый день недели, но у меня проблема. Если моя дата дня - воскресенье, он определяет меня как первый день недели в следующий понедельник, а не в предыдущий понедельник. На французском языке неделя начинается в понедельник

startWeek = DateTime.Today.AddDays((int)_myCulture.DateTimeFormat.FirstDayOfWeek - (int)DateTime.Today.DayOfWeek);

1 Ответ

1 голос
/ 05 апреля 2020

Вы можете использовать один из следующих вариантов независимо от даты, поскольку он даст вам первый день недели как функцию DateTime объекта, который вы назначаете для dateBeginWeek.

public static void Main() 
{
    CultureInfo _myCulture = new CultureInfo("fr-FR");
    var firstDay = _myCulture.DateTimeFormat.FirstDayOfWeek; // should be 'Monday'
    Console.WriteLine("The current culture is {0} and FDoW is {1}!", _myCulture.Name, firstDay.ToString());

    DateTime dateBeginWeek = DateTime.Today; // or another Datetime e.g., new DateTime(2020, 4, 09);
    while (dateBeginWeek.DayOfWeek != _myCulture.DateTimeFormat.FirstDayOfWeek)
        dateBeginWeek = dateBeginWeek.AddDays(-1);

    Console.WriteLine("First day of current week: {0}", dateBeginWeek);
}

или

    DateTime dateBeginWeek = DateTime.Today;
    var diffInDays = (int) dateBeginWeek.DayOfWeek - (int) _myCulture.DateTimeFormat.FirstDayOfWeek;

    if(diffInDays < 0){ 
        diffInDays += 7;
    }

    dateBeginWeek = dateBeginWeek.AddDays(-diffInDays);
    Console.WriteLine("First day of current week: {0}", dateBeginWeek);  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...