DateTime.AddDays与Calendar.AddDays

DateTime.AddDaysCalendar.AddDays什么区别?
DateTime类型日历是独立的吗?

DateTime.AddDays只将天数转换为刻度,并将此刻度数添加到日期时间。 Calendar.AddDays的默认实现完全相同。 但是,由于它是一种虚拟方法,因此可以以更复杂的方式在特定日历中实现,例如: http : //codeblog.jonskeet.uk/2010/12/01/the-joys-of-date-时间算术/

我相信DateTime是硬编码的,可以有效地使用格里高利历。

例如,如果你看DateTime.DaysInMonth它假设有12个月,而HebrewCalendar支持13个月。

编辑: DateTime某些方面可以容纳其他日历,例如此构造函数 。 但是,我相信它只是将它转换为公历:

 Calendar calendar = new HebrewCalendar(); DateTime dt = new DateTime(5901, 13, 1, 0, 0, 0, calendar); // Uses month 13! Console.WriteLine(dt.Year); // 2141 Console.WriteLine(dt.Month); // 9 

据我所知, Calendar.AddDays方法返回一个DateTime对象并调用它的函数。

这个问题的答案非常容易回答。 这两个function没有区别。

Calendar.AddDays也是DateTime

DateTime不会扩展该特定function,它唯一使用的是UTC和本地时间。 还应该建议Calendar不是DateTime对象,它可能行为不一样, 并且似乎不提供获取当前系统时间的方法。

编辑 – 我原本以为你在谈论Web控件,这似乎是一个全球化,允许你显示给定用户群的当前日期和时间做他们声明的操作系统的设置。