gpt4 book ai didi

c# - 从 DateTime 对象计算周一至周日周

转载 作者:太空宇宙 更新时间:2023-11-03 19:27:52 25 4
gpt4 key购买 nike

我正在尝试编写一个方法,该方法将返回代表周一至周日一周的 DateTimes 列表。它应该获取给它的 DateTime 并用它来计算周围的日期

它计算的开始日期没问题,但是当它到达最后一个循环时问题就开始了。每次运行 DateTime 变量 tmpDate 都应增加 1 天,然后添加到列表中。但是,就目前而言,我正在取回一个包含 7 个开始日期的列表。

谁能看出我哪里出错了(我觉得我可能会在这方面看起来有点像个傻瓜 :))?
另外,如果这是一个经常被问到的问题,我们深表歉意。可以看到很多开始日期/结束日期和周数类型的问题,但没有一个专门处理此类问题。

private List<DateTime> getWeek(DateTime enteredDate)
{
/* Create List to hold the dates */
List<DateTime> week = new List<DateTime>();
int enteredDatePosition = (int)enteredDate.DayOfWeek;

/* Determine first day of the week */
int difference = 0;

for (int i = 0; i < 7; i++)
{
difference++;
if (i == enteredDatePosition)
{
break;
}
}
// 2 subtracted from difference so first and enteredDatePostion elements will not be counted.
difference -= 2;

DateTime startDate = enteredDate.Subtract(new TimeSpan(difference, 0, 0, 0));
week.Add(startDate);

/* Loop through length of a week, incrementing date & adding to list with each iteration */
DateTime tmpDate = startDate;

for (int i = 1; i < 7; i++)
{
tmpDate.Add(new TimeSpan(1, 0, 0, 0));
week.Add(tmpDate);
}
return week;
}

最佳答案

DateTime 是不可变的。
tmpDate.Add(...) 返回一个新的 DateTime,并且不修改 tmpDate

你应该写成 tmpDate = tmpDate.AddDays(1)tmpDate += TimeSpan.FromDays(1)

关于c# - 从 DateTime 对象计算周一至周日周,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7231389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com