我正在编写一个测试应用程序来重现一些数据写入方案 - 每小时运行一次的任务.
为此,我需要知道它将执行多少次 - 在某一天有多少小时.我尝试这样做:Period.Between(localDateTimeStart.Date, localDateTimeStart.Date.PlusDays(1), PeriodUnits.Hours)
但它给了我ArgumentException说Units contains time units: Hours.在NodaTime中这样做的惯用方法是什么?或者我的方法是错的?
在两个本地日期/时间值之间,总会有24小时.听起来你对特定区域的日期感兴趣,在这种情况下你想要:
var startOfDay = zone.AtStartOfDay(date);
var startOfNextDay = zone.AtStartOfDay(date.PlusDays(1));
var duration = startOfNextDay.ToInstant() - startOfDay.ToInstant();
var hours = duration.Ticks / NodaConstants.TicksPerHour;
Run Code Online (Sandbox Code Playgroud)
(在Noda Time 2.0中,Duration有一个TotalHours属性使这更容易.这将返回一个double值,而这hours是long由于操作数的类型.请注意,如果时区有(例如)一半的转换,它可能会丢失信息一小时.)
| 归档时间: |
|
| 查看次数: |
232 次 |
| 最近记录: |