- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
由于 DateTime.AddDays() 采用 double
参数,我担心当您添加天数时,可能会出现一些舍入错误。例如,假设我有以下循环:
DateTime Now = DateTime.Today;
for (int i = 0; i < 365; ++i)
{
Now = Now.AddDays(1);
// do something
}
我担心 Now 可能会从午夜开始逐渐消失。我总是很想做这样的事情,它可能会慢一点,但可以减轻我的偏执:
for (int i = 0; i < 365; ++i)
{
Now = Now.AddDays(1.01).Date;
// do something
}
最佳答案
由于 DateTime
在内部将日期存储为 64 位整数,其中一个刻度表示 100 纳秒,因此没有出错的风险。一天有 864,000,000,000 个刻度,Double
的精度至少为 15 位。因此,当四舍五入到滴答时,每个错误都会消失,因为如果 1.0
等于一天,Double
的分辨率高于一次滴答。
这对 AddYears()
来说不是真的,因为如果 1.0
等于一年,Double
没有足够的精度来表示一个刻度。但是如果你看一下 DateTime
类,你会发现设计尊重这个事实 - AddMonths()
和 AddYears()
都有整数和不是浮点参数。
要检查这一点,只需执行以下代码。
DateTime now = DateTime.Now;
// Displays 864000000000
Console.WriteLine(now.AddDays(1.0).Ticks - now.Ticks);
关于c# - DateTime.AddDays 的准确性如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/768975/
DateTime.AddDays 和 Calendar.AddDays 有什么区别? DateTime 类型的日历是否独立? 最佳答案 DateTime.AddDays 只是将天数转换为刻度并将此刻度
我目前在 UTC+1 时区。 TimeZoneInfo.Local.BaseUtcOffset 返回 +1。 new DateTimeOffset(DateTime.Today).AddDays(4)
我有两个 TextBox,其中我获取 2 个日期并获取这两个日期之间的日期数组。我有一个代码 $(".txtto").change(function () { var
我正在编写脚本来检查文件是否超过一年。我收到一个无法比拟的错误。我不确定该如何解决此问题并感到困惑。 $文件 $myDate = Get-Date $path = $args[0] $files =
由于 DateTime.AddDays() 采用 double 参数,我担心当您添加天数时,可能会出现一些舍入错误。例如,假设我有以下循环: DateTime Now = DateTime.Today
是否有任何东西可以停止不在 while 循环内运行的 DateTime AddDays() 方法。我有这段简单的代码; DateTime last_day = monthCalendar2.Selec
这段代码试图设置 4 个标签为第 x 周、第 x+1 周、第 x+2 周和第 x+3 周,但是在使用 addDays(7) 更新时失败了,我只得到第 x 周、第 x 周、第 x 周和第 x 周。任何人
我正在创建一个这样的日期: DateTime TheDate = DateTime.UtcNow.AddDays(-180); TheDate = new DateTime(TheDate.Year,
using System; using System.Globalization; namespace Date_Problem { class Program { s
接下来的两行将相同的金额添加到相同的日期,结果日期部分相同,但不知何故时间部分有所不同! (new DateTime(2000,1,3,18,0,0)).AddDays(4535); (new D
我有这个简单的程序: DateTime aux = new DateTime(2012, 6, 12, 12, 24, 0); DateTime aux2 = new
我想编写一个扩展方法,将一天添加到 Nullable DateTime,但修改日期本身。 我想按如下方式使用它: someDate.AddOneDay(); 这直接改变了 someDate 的值。 我
我有一个非常简单的 DateTime 对象,它被设置为日期 01-01-0001。我被提供了一个值以添加到此 DateTime,以天为单位。不过,我发现两天的结果出现了意想不到的偏移。假设我打印了 A
我想在 for 循环中使用 AddDays() 方法。但它不起作用。尽管在循环中使用,但日值并没有增加。然后就是改造无限循环。例如; DateTime exDt = tempPermissionWar
我有velow脚本 $AddDays = Read-Host "How long user will be active (: in Days) " $DateInFutu
我正在编写一个小脚本,如果过去几天发生了一些事情,就会触发一个 Action 。 所以我有一个帖子及其日期的数据库,我想选择最近 2 天内的所有记录。 要选择过去 2 天内的所有内容,我需要知道 2
我有velow脚本 $AddDays = Read-Host "How long user will be active (: in Days) " $DateInFutu
这个问题在这里已经有了答案: Nullable DateTimes and the AddDays() extension (4 个答案) 关闭 7 年前。 嗨,AddDays 在 MVC4 中不起
我有一个日期时间对象 dt,它包含今天的日期。 DateTime dt = DateTime.Today; DateTime idt = new DateTime(); 我需要在循环到达当年的最后一天
最近新西兰在 2015 年 9 月 27 日实行夏令时。 SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); sd.setTimeZon
我是一名优秀的程序员,十分优秀!