【问题标题】:The more you add hours to a DateTime class the more time you loss您向 DateTime 类添加的时间越多,您损失的时间就越多
【发布时间】:2019-03-10 14:08:20
【问题描述】:

我对 C# 中的 DateTime.AddHours 方法有疑问。我注意到我添加到某个日期/时间的时间越多。我失去的天数/小时数越多。例如:

DateTime DateOne = DateTime.Now;;
DateTime DateTwo = DateOne.AddHours(438000); // 50 years

我在 DateOne 课程中增加了 50 年的时间,所以我应该得到 2069 年 3 月 10 日。

但是,如果您打印 DateOne,您将得到:3/10/2019,即当前日期 ,但如果你打印DateTwo,你会得到:2/25/2069。 那是在 50 年内损失了超过 10 天的变化。

肯定有问题。我到底做错了什么?

【问题讨论】:

    标签: c# date time


    【解决方案1】:

    考虑闰年超过 50 年的影响。在此计算中,您应该损失大约 12 天。

    【讨论】:

      【解决方案2】:

      使用AddYears(50) 添加年份。

      小时:

      438000 = 50 * 365 * 24
      

      在公历中,每个闰年有 366 天而不是 365 天,将 2 月延长到 29 天而不是常见的 28 天。

      更多:https://en.wikipedia.org/wiki/Leap_year

      【讨论】:

      • 谢谢,我必须自学格鲁吉亚历法和闰年。我一直认为,如果 2 月是 29 天,那意味着其他月份会以某种方式减少 1 天。
      猜你喜欢
      • 1970-01-01
      • 2012-03-25
      • 1970-01-01
      • 2022-11-03
      • 2017-02-26
      • 1970-01-01
      • 1970-01-01
      • 2021-04-05
      • 2019-11-01
      相关资源
      最近更新 更多