2010-05-19 8 views
7

Je veux soustraire de DateTime. Exemple:Soustraction d'un 'DateTime'

date1 = 13/01/2004 12:20:00 
result = Subtract(date1-15); 

Sortie prévue:

13/01/2004 12:05:00 

Comment puis-je faire?

+1

@Will, pourquoi Google quand nous avons StackOverflow! – code4life

+0

@ code4life: Parce que c'est un exercice paresseux pour poser une question sur la soustraction des minutes, quand vous pouvez ajouter une quantité négative de minutes. C'est un pur exercice mathématique. IntelliSense fournit la méthode 'AddMinutes()'. –

+0

@Will - dans ce cas, nous devrions recommander l'OP utilise IntelliSense, vous n'êtes pas d'accord? Dans l'ensemble, stackoverflow> google, IMO ... :) (Ou nous devrions le faire de cette façon) – code4life

Répondre

41

Vous pourriez jeter un oeil à la méthode AddMinutes:

var result = date1.AddMinutes(-15); 
+10

Sachez que l'appel 'DateTime.AddMinutes (-1)' sur une valeur qui a été initialisée à DateTime.MinValue lève un exception. Fait attention! –

3

Utilisez DateTime.Add(TimeSpan) avec une valeur négative.

Ou utilisez DateTime.AddDays(), DateTime.AddMinutes(), etc.

3

Vous pouvez essayer ceci:

TimeSpan t1 = new TimeSpan(16,0,0); 
DateTime d2= datetime.Subtract(t1); 
4
System.DateTime date1 = new System.DateTime(1996, 6, 3, 22, 15, 0); 
System.DateTime date2 = new System.DateTime(1996, 12, 6, 13, 2, 0); 
System.DateTime date3 = new System.DateTime(1996, 10, 12, 8, 42, 0); 

// diff1 gets 185 days, 14 hours, and 47 minutes. 
System.TimeSpan diff1 = date2.Subtract(date1); 

// date4 gets 4/9/1996 5:55:00 PM. 
System.DateTime date4 = date3.Subtract(diff1); 

// diff2 gets 55 days 4 hours and 20 minutes. 
System.TimeSpan diff2 = date2 - date3; 

// date5 gets 4/9/1996 5:55:00 PM. 
System.DateTime date5 = date1 - diff2;