gpt4 book ai didi

C# 将时间分成小时 block

转载 作者:行者123 更新时间:2023-12-02 21:33:53 24 4
gpt4 key购买 nike

我需要一些帮助来将 2 个日期时间拆分为它们之间的小时间隔。

这涉及“付费”数据,因此需要非常准确。我需要打卡和下类,并将它们分成小时间隔。

示例:

打卡 = 5/25/2011 1:40:56PM

下类 = 5/25/2011 6:22:12PM

我需要它看起来像:

2011年5月25日下午1:40:56

2011年5月25日下午2:00:00

2011年5月25日下午3:00:00

2011年5月25日下午4:00:00

2011年5月25日下午5:00:00

2011年5月25日下午6:00:00

2011年5月25日下午6:22:12

然后,我计划根据“差异”表检查这些时间,看看他们是否应该有一个新的支付代码。但稍后我会担心付款码的问题。

有什么办法可以帮助你打发时间吗?更喜欢 C#,但我也可以访问 MSSQL2000(这是我们拉原始时代的地方)

最佳答案

像这样怎么样?

static IEnumerable<DateTime> GetWorkingHourIntervals(DateTime clockIn, DateTime clockOut)
{
yield return clockIn;

DateTime d = new DateTime(clockIn.Year, clockIn.Month, clockIn.Day, clockIn.Hour, 0, 0, clockIn.Kind).AddHours(1);

while (d < clockOut)
{
yield return d;
d = d.AddHours(1);
}

yield return clockOut;
}

这使用 iterator blocks但它可以很容易地重写为返回一个列表。

使用示例:

static void Main(string[] args)
{
var clockIn = new DateTime(2011, 5, 25, 13, 40, 56);
var clockOut = new DateTime(2011, 5, 25, 18, 22, 12);

var hours = GetWorkingHourIntervals(clockIn, clockOut);

foreach (var h in hours)
Console.WriteLine(h);

Console.ReadLine();
}

输出:

2011-05-25 13:40:562011-05-25 14:00:002011-05-25 15:00:002011-05-25 16:00:002011-05-25 17:00:002011-05-25 18:00:002011-05-25 18:22:12

更新:LukeH很聪明地建议您还应该复制 DateTimeKind。如果您计划稍后将日期时间与本地时间相互转换,这确实是一个明智之举。

关于C# 将时间分成小时 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6230143/

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