获取一周中的几天,一个月中的一天

问题描述

我一直在 stackoverflow 上查找,但找不到如何在 C# 上解决以下问题。 我需要一个方法,我会发送一个 int(一个月的哪一天),它总是返回从星期一到星期五所属的那一周的星期几。

例如: 今天是 8,我需要该方法返回一个包含以下数字(3、4、5、6、7)的数组。

或者想象一下,即使它是 8,我发送到这个方法 19,它也会返回 (17,18,19,20,21) 对应17到星期一,18到星期二....

我没有任何代码,因为我不知道该怎么做。 希望你能帮助我!

非常感谢!

编辑:想象一下我发送了一个简单的日期格式 08/05/2021

解决方法

private DateTime[] weekByDay(DateTime date)
{
  DateTime[] week = new DateTime[5];
  while (date.DayOfWeek != DayOfWeek.Monday) //while day is not monday
  {
    date = date.AddDays(-1); //substract 1 day to date
  }
  week[0] = date; //add the current day (monday),to the array
  for (int i = 1; i < 5; i++) //add the next day till Friday
  {
   date = date.AddDays(1);
   week[i] = date;
  }
  Console.WriteLine("MONDAY was " + week[0]);
  Console.WriteLine("TUESDAY was " + week[1]);
  Console.WriteLine("WEDNESDAY was " + week[2]);
  Console.WriteLine("THURSDAY was " + week[3]);
  Console.WriteLine("FRIDAY was " + week[4]);
  return week;
}