DateTime.AddDays
和Calendar.AddDays
之间的区别是什么?
DateTime
类型日历是否独立?
答案 0 :(得分:10)
DateTime.AddDays只会将天数转换为刻度,并将此滴答数添加到日期时间。 Calendar.AddDays的默认实现完全相同。然而,由于它是虚拟方法,因此可以以更复杂的方式在特定日历中实现,例如,类似这里的内容:http://codeblog.jonskeet.uk/2010/12/01/the-joys-of-date-time-arithmetic/
答案 1 :(得分:7)
我认为DateTime
是硬编码的,可以有效地使用格里高利历。
例如,如果您查看DateTime.DaysInMonth
,则假设有12个月,而HebrewCalendar
则支持13个。
编辑:DateTime
的某些方面 适应其他日历,例如this constructor。但是,我相信它只是将它转换为公历:
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
答案 2 :(得分:0)
据我所知,Calendar.AddDays
方法返回一个DateTime
对象并调用它的函数。
答案 3 :(得分:0)
这个问题的答案非常容易回答。这两个函数没有区别。
Calendar.AddDays也是一个DateTime
DateTime不会扩展该特定功能,它唯一使用的是UTC和本地时间。还应该建议日历不是DateTime对象,它的行为可能不一样,并且似乎不提供获取当前系统时间的方法。
编辑 - 我原本以为你在谈论Web控件,这似乎是一个全球化,允许你显示给定用户群的当前日期和时间做他们声明的操作系统的设置。