Quelle est la différence entre DateTime.AddDays
et Calendar.AddDays
?
Le calendrier de type DateTime
est-il indépendant?
DateTime.AddDays convertit simplement les jours en ticks et ajoute ce nombre de ticks à la date heure. L’implémentation par défaut de Calendar.AddDays fait exactement la même chose. Cependant, puisqu’il s’agit d’une méthode virtuelle, elle peut être implémentée dans un calendrier spécifique de manière plus compliquée, par exemple quelque chose comme ici: http://codeblog.jonskeet.uk/2010/12/01/the-joys-of-date- arithmétique du temps /
Je crois que DateTime
est codé en dur pour utiliser efficacement le calendrier grégorien.
Par exemple, si vous regardez DateTime.DaysInMonth
on suppose qu’il y a 12 mois, alors que HebrewCalendar
prend en charge 13.
EDIT: Certains aspects de DateTime
prennent en charge d’autres calendriers, tels que ce constructeur . Cependant, je crois qu’il convertit simplement en un calendrier grégorien:
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
Autant que je sache, la méthode Calendar.AddDays
renvoie un object DateTime
et appelle sa fonction.
La réponse à cette question est extrêmement facile à répondre. Il n’y a pas de différence entre les deux fonctions.
Calendar.AddDays est aussi une DateTime
DateTime n’étend pas cette fonctionnalité particulière, elle n’utilise que l’heure UTC et l’heure locale. Il est également conseillé de suggérer qu’un agenda n’est PAS un object DateTime, il se peut qu’il ne se comporte pas de la même manière et qu’il ne semble pas fournir de méthode pour obtenir l’heure système actuelle.
Éditer – Au départ, je pensais que vous parliez du contrôle Web, cela semble être une mondialisation, pour vous permettre d’afficher la date et l’heure actuelles pour une base d’utilisateurs donnée, définir les parameters de leur système d’exploitation déclaré.