205 votes

Soustraire des jours à une DateTime

J'ai le code suivant dans mon programme C#.

DateTime dateForButton =  DateTime.Now;  
dateForButton = dateForButton.AddDays(-1);  // ERROR: un-representable DateTime

Chaque fois que je l'exécute, j'obtiens l'erreur suivante :

La valeur ajoutée ou soustraite donne une DateTime non représentable.
Nom du paramètre : valeur

Je n'ai jamais vu ce message d'erreur auparavant et je ne comprends pas pourquoi je le vois. D'après les réponses que j'ai lues jusqu'à présent, je suis amené à croire que je peux utiliser -1 dans une opération d'addition pour soustraire des jours, mais comme le montre ma question, ce n'est pas le cas pour ce que j'essaie de faire.

408voto

christiandev Points 7747
DateTime dateForButton = DateTime.Now.AddDays(-1);

87voto

CyberDude Points 4097

Cette erreur se produit généralement lorsque vous essayez de soustraire un intervalle de DateTime.MinValue ou vous voulez ajouter quelque chose à DateTime.MaxValue (ou vous essayez d'instancier une date en dehors de cet intervalle min-max). Êtes-vous sûr de ne pas assigner MinValue quelque part ?

56voto

sam Points 561

Vous pouvez le faire :

DateTime.Today.AddDays(-1)

52voto

Rajesh Subramanian Points 3722

Vous pouvez utiliser le code suivant :

dateForButton = dateForButton.Subtract(TimeSpan.FromDays(1));

13voto

cahit beyaz Points 74

En dateTime.AddDays(-1) ne soustrait pas ce jour de la dateTime référence. Il renverra une nouvelle instance, avec ce jour soustrait de la référence originale.

DateTime dateTime = DateTime.Now;
DateTime otherDateTime = dateTime.AddDays(-1);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X