gpt4 book ai didi

c# - 如何将 Interval 转换为 NodaTime 中的 LocalDate 范围?

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

I'm running into a scenario where I need to convert an Interval value to Enumerable collection of LocalDate in NodaTime. How can I do that?

下面是代码

Interval invl = obj.Interval; 
//Here is the Interval value i.e.,{2016-10-20T00:00:00Z/2016-11-03T00:00:00Z}

如何在这些间隔之间形成日期范围?

提前致谢。

最佳答案

Niyoko 给出的方法的另一种方法:

  • 将两个 Instant 值转换为 LocalDate
  • 在它们之间实现一个范围

我假设时间间隔是唯一的 - 因此如果终点代表目标时区的恰好午夜,则排除那一天,否则包括它。

因此,下面的方法包括给定时区内间隔内的每个日期。

public IEnumerable<LocalDate> DatesInInterval(Interval interval, DateTimeZone zone)
{
LocalDate start = interval.Start.InZone(zone).Date;
ZonedDateTime endZonedDateTime = interval.End.InZone(zone);
LocalDate end = endLocalDateTime.Date;
if (endLocalDateTime.TimeOfDay == LocalTime.Midnight)
{
end = end.PlusDays(-1);
}
for (LocalDate date = start; date <= end; date = date.PlusDays(1))
{
yield return date;
}
}

关于c# - 如何将 Interval 转换为 NodaTime 中的 LocalDate 范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40146344/

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