Comment soustraire un mois d'un objet date dans VB.NET?
J'ai essayé:
Today.AddMonths(-1)
Cependant, étant donné qu'aujourd'hui est le 1er janvier 2010, le résultat que j'obtiens est le 1er décembre 2010. La réponse que je veux est le 1er décembre 2009.
Existe-t-il un moyen pratique de le faire dans le cadre .NET?
Vous devez en fait transporter Today dans une variable et laisser cette affectation y fonctionner. Le code suivant produira le résultat que vous attendez (je viens de le vérifier parce que votre message m'a fait réfléchir à deux fois).
Dim dt As DateTime = Date.Today
dt = dt.AddMonths(-2)
Dim x As String = dt.ToString()
Cela fonctionne très bien, vous devez vous rappeler que le DateTime est imuable.
Dim d As DateTime
d = New DateTime(2010, 1, 1)
d = d.AddMonths(-1)
Jetez un oeil à DateTime Structure
Un calcul sur une instance de DateTime, telle que Ajouter ou Soustraire, ne modifie pas la valeur de l'instance. Au lieu de cela, le calcul renvoie une nouvelle instance de DateTime dont la valeur est le résultat du calcul.
Dim d As DateTime = #1/1/2010#
d = d.AddMonths(-1)
J'ai utilisé ce qui suit et cela fonctionne.
Dim dtToday As DateTime = Date.Today
dtToday = dtToday.AddMonths(-2)