DateTime.AddDays vs Calendar.AddDays

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é.