问题描述
我一直在 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;
}