vb.net – 每月小时,夏令时

vb.net – 每月小时,夏令时,第1张

概述是否有内置函数来计算一个月的小时数? 它需要它照顾日光(增加或减少一小时). 如果你不在午夜并不总是有效的时区,你可以做这样的事情(如果VB语法稍微偏离,则道歉): Dim start = New DateTime(year, month, day, 0, 0, 0, DateTimeKind.Local)Dim end = start.AddMonths(1)Dim length = end 是否有内置函数来计算一个月的小时数?
它需要它照顾日光(增加或减少一小时).解决方法 如果你不在午夜并不总是有效的时区,你可以做这样的事情(如果VB语法稍微偏离,则道歉):

Dim start = New DateTime(year,month,day,DateTimeKind.Local)Dim end = start.AddMonths(1)Dim length = end.ToUniversalTime() - start.ToUniversalTime()Dim hours = length.TotalHours

如果你像巴西那样在当地时间午夜发生DST转换,这就有可能出现问题.请注意,以上都是假设您要使用系统本地时区.

使用Noda Time,您可以创建适当的LocalDate值,然后转换为zoneddatetime at the start of the relevant day,并以这种方式计算出差异,没有任何歧义. C#示例:

var zone = ... // Whatever DateTimeZone you want...var start = new LocalDate(year,day);var end = start.PlusMonths(1);var startInstant = zone.AtStartOfDay(start).ToInstant();var endInstant = zone.AtStartOfDay(end).ToInstant();var duration = endInstant - startInstant;var hours = duration.Ticks / NodaConstants.TicksPerHour;
总结

以上是内存溢出为你收集整理的vb.net – 每月小时,夏令时全部内容,希望文章能够帮你解决vb.net – 每月小时,夏令时所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/1222328.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存