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()); } } }