gpt4 book ai didi

c# - 在 NodaTime 中处理不从午夜开始的日子

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

我正在开发一个包含火车时刻表的应用程序,其中第一列火车在 0400 离开,而最后一列火车在 0200 离开。因此,此应用程序的用户处理从 0300 开始到 0300 结束的日子。换句话说,当他们说“周三 0200 的火车”,其实是指“周四 0200 出发的火车”。

我们的应用程序需要存储在(例如)星期三出发的所有火车,这意味着它不应该包括在 0300 之前出发的火车,但它应该包括在第二天 0300 之前出发的火车。

我将如何在应用程序中表示它而不发疯?这应该如何存储在数据库中以便于查询?

最佳答案

我会存储实际的日期/时间值。然后查询,要搜索“星期三的任何事情”,您将从星期三 0400(含)到星期四 0400(不含)。

就显示而言,您最好采用日期,如果时间早于某个截止时间则减去一天:

private static readonly LocalTime CutOff = new LocalTime(4, 0, 0);

...
LocalDate date = dateTime.Date;
if (dateTime.TimeOfDay < CutOff)
{
date = date.PlusDays(-1);
}
var dayOfWeek = date.IsoDayOfWeek;

我会尽量避免单独使用日期,以免发疯。任何日期/时间都将是明确的。

关于c# - 在 NodaTime 中处理不从午夜开始的日子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20053150/

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