Вы можете использовать один из следующих вариантов независимо от даты, поскольку он даст вам первый день недели как функцию 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);