C #: qual è il modo più semplice per sottrarre il tempo?

Sto provando a mettere insieme uno strumento che mi aiuterà a fare piani di lavoro. Qual è il modo più semplice per risolvere quanto segue?

8:00 am + 5 ore = 1:00 pm

e

17:00 – 2 ore = 3:00 pm

e

17:30 -: 45 = 4:45

e così via.

Questi possono essere tutti fatti con DateTime.Add(TimeSpan) poiché supporta tempi passivi positivi e negativi.

 DateTime original = new DateTime(year, month, day, 8, 0, 0); DateTime updated = original.Add(new TimeSpan(5,0,0)); DateTime original = new DateTime(year, month, day, 17, 0, 0); DateTime updated = original.Add(new TimeSpan(-2,0,0)); DateTime original = new DateTime(year, month, day, 17, 30, 0); DateTime updated = original.Add(new TimeSpan(0,45,0)); 

Oppure puoi anche usare il metodo DateTime.Subtract(TimeSpan) modo analogo.

Scopri tutti i metodi DateTime qui: http://msdn.microsoft.com/en-us/library/system.datetime.aspx

Add Restituisce un nuovo DateTime che aggiunge il valore del TimeSpan specificato al valore di questa istanza.

AddDays Restituisce un nuovo DateTime che aggiunge il numero specificato di giorni al valore di questa istanza.

AddHours Restituisce un nuovo DateTime che aggiunge il numero specificato di ore al valore di questa istanza.

AddMilliseconds Restituisce un nuovo DateTime che aggiunge il numero specificato di millisecondi al valore di questa istanza.

AddMinutes Restituisce un nuovo DateTime che aggiunge il numero specificato di minuti al valore di questa istanza.

AddMonths Restituisce un nuovo DateTime che aggiunge il numero specificato di mesi al valore di questa istanza.

AddSeconds Restituisce un nuovo DateTime che aggiunge il numero specificato di secondi al valore di questa istanza.

AddTicks Restituisce un nuovo DateTime che aggiunge il numero specificato di tick al valore di questa istanza.

AddYears Restituisce un nuovo DateTime che aggiunge il numero specificato di anni al valore di questa istanza.

Anche questo funziona:

 System.DateTime dTime = DateTime.Now(); // tSpan is 0 days, 1 hours, 30 minutes and 0 second. System.TimeSpan tSpan = new System.TimeSpan(0, 1, 3, 0); System.DateTime result = dTime + tSpan; 

Per sottrarre un anno:

 DateTime DateEnd = DateTime.Now; DateTime DateStart = DateEnd - new TimeSpan(365, 0, 0, 0); 

Utilizzare l’object TimeSpan per acquisire l’elemento temporale iniziale e utilizzare i metodi come AddHours o AddMinutes . Per sottrarre 3 ore, farai AddHours(-3) . Per sottrarre 45 minuti, farai AddMinutes(-45)

prova questo

 namespace dateandtime { class DatesTime { public static DateTime Substract(DateTime now, int hours,int minutes,int seconds) { TimeSpan T1 = new TimeSpan(hours, minutes, seconds); return now.Subtract(T1); } static void Main(string[] args) { Console.WriteLine(Substract(DateTime.Now, 36, 0, 0).ToString()); } } }