C#学习教程:来自Week和WeekYear的LocalDate分享


来自Week和WeekYear的LocalDate

使用NodaTime库,如何根据周数和周WeekYear计算一周中第一天的LocalDate。

与此相反:

var date = new LocalDate(2012, 1, 1); int weekYear = date.WeekYear; // 2011 int weekNr = date.WeekOfWeekYear; // 52 

像这样的假代码:

 var newDate = LocalDate.FirstDayFromWeek(weekYear, weekNr); 

首先,您应该考虑如何构建相关的LocalDate – 如果您有WeekYearWeekOfWeekYear那么这是您在逻辑上拥有的所有信息。 然后你可以从AtMidnightLocalDate获取一个LocalDateTime – 但是我会坚持使用LocalDate直到你真的需要其他任何东西,因为这样你就可以合成更少的信息。

我不相信我们目前使这个特别简单,说实话 – 虽然底层引擎支持足够的计算,我们可以相当容易地添加它。

如果不对API进行任何更改,我建议您最好使用以下内容:

所以类似于:

 public static LocalDate LocalDateFromWeekYearAndWeek(int weekYear, int weekOfWeekYear) { LocalDate midYear = new LocalDate(weekYear, 6, 1); LocalDate startOfWeek = midYear.Previous(IsoDayOfWeek.Monday); return startOfWeek.PlusWeeks(weekOfWeekYear - startOfWeek.WeekOfWeekYear); } 

不是非常愉快或高效,但也不是糟糕……如果您发现自己想要在WeekOfWeekYearWeekYear上做很多工作,请提出您想要做的事情的function请求。

编辑:正如更新,我们现在支持这个:

上述就是C#学习教程:来自Week和WeekYear的LocalDate分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

 LocalDate date = LocalDate.FromWeekYearWeekAndDay(year, week, IsoDayOfWeek.Monday); 

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/1301093.html

(0)
上一篇 2023年1月8日 上午6:47
下一篇 2023年1月8日 上午6:50

精彩推荐