gpt4 book ai didi

c# 查找与 1 年前相同的 "named days"范围

转载 作者:行者123 更新时间:2023-11-30 17:23:24 32 4
gpt4 key购买 nike

使用 c# visual studio 2008。

谁能帮忙用算法来做到这一点

如果我为本周选择了一系列日期(例如周一到周五),我可以使用可用的日期时间函数找到这些日期。

我想做的是与 1 年前同一天范围内的存储数据进行比较。

所以基本上我需要回溯 1 年并找到 1 年前最近的周一到周五范围内的日期。我想我还需要考虑闰年。

任何人都可以帮助找到合适的算法来实现这一点。当然,今天和去年的日期不会是同一天。

提前致谢

最佳答案

这里有一些代码可能做你想做的事——但测试用例表明有一些极端情况需要考虑:

using System;

public class Test
{
static void Main()
{
Console.WriteLine(SameDayLastYear(DateTime.Today));
Console.WriteLine(SameDayLastYear(new DateTime(2010, 12, 31)));
}

static DateTime SameDayLastYear(DateTime original)
{
DateTime sameDate = original.AddYears(-1);
int daysDiff = original.DayOfWeek - sameDate.DayOfWeek;
return sameDate.AddDays(daysDiff);
}
}

您希望第二次调用的结果是什么?此代码返回 2010 年 1 月 1 日,因为这是最接近“一年前的同一天”的日期。

我强烈建议无论你做什么,你都要进行单元测试来检查闰年、年份的开始和结束等。

关于c# 查找与 1 年前相同的 "named days"范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2234813/

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