6
votes

C # DateTime.Addmonth avec jour inexistant au mois prochain

Si j'ai DateTime date = nouvelle dateTime ("1/31/2010"); et j'appelle date.addmonth (1) . Vais-je obtenir "2/28/2010" ou cela va-t-il freirer parce que "2/31/2010" n'existe pas? Ou vais-je obtenir "3/3/2010"?

(aussi je ne suis pas près d'un ordinateur avec Visual Studio)


3 commentaires

J'ai voté cette question parce que cela aurait pu être facilement testé. Je réalise que l'utilisateur a dit qu'ils n'étaient pas à proximité d'un ordinateur, mais ils auraient pu vérifier quand ils étaient en arrière à un.


J'ai suscité parce que AddMonth est un non-sens: un mois durable 28, 29, 30 ou 31 jours? C'est une décision arbitraire par cadre: Utiliser les adieux () à la place.


Je suis absolument d'accord. Cette méthode calcule une date, peut-être même le long du "sens commun" de la majorité, mais il n'est en aucun cas une opération "ajouter". D + 1minth + 1 mois n'est pas nécessairement D + 2 mois, c'est-à-dire 31Jan + 1m + 1m = 28mar tandis que 31jan + 2m = 31mar. Heureux débogage de la mesure de temps historique mal structurée.


4 Réponses :


6
votes

Vous obtiendrez la fin de la fin du mois suivant, donc 2/28.


0 commentaires

4
votes

Il fera une addition de mois de temps de date à temps approprié et renvoie le 2/28/2010


0 commentaires

4
votes

Il ne casse pas, cela vous donnera 2/28/2010


0 commentaires

40
votes
  • Méthode DateTime.Addmonths

    Si le jour qui en résulte n'est pas un jour valide du mois résultant, le dernier jour valide du mois résultant est utilisé. Par exemple, le 31 mars + 1 mois = 30 avril.


0 commentaires