DateTime
является неизменным - когда вы звоните Subtract
, он не меняет цель вызова, он возвращает новое значение:
DateTime previousDay = new DateTime(year, month, day);
string test1 = previousDay.ToString();
previousDay = previousDay.Subtract(new TimeSpan(1, 0, 0, 0));
string test2 = previousDay.ToString();
previousDay = previousDay.Subtract(new TimeSpan(1, 0, 0, 0));
string test3 = previousDay.ToString();
Хотя я 'd используйте оператор -
и TimeSpan.FromDays
:
DateTime previousDay = new DateTime(year, month, day);
string test1 = previousDay.ToString();
previousDay = previousDay - TimeSpan.FromDays(1);
string test2 = previousDay.ToString();
previousDay = previousDay - TimeSpan.FromDays(1);
string test3 = previousDay.ToString();
Или еще лучше используйте AddDays
:
DateTime previousDay = new DateTime(year, month, day);
string test1 = previousDay.ToString();
previousDay = previousDay.AddDays(-1);
string test2 = previousDay.ToString();
previousDay = previousDay.AddDays(-1);
string test3 = previousDay.ToString();
Или еще лучше используйте NodaВремя :)
LocalDate date = new LocalDate(year, month, day);
string test1 = previousDay.ToString();
date = date.PlusDays(-1);
string test2 = previousDay.ToString();
date = date.PlusDays(-1);
string test3 = previousDay.ToString();
Или:
LocalDate date = new LocalDate(year, month, day);
string test1 = previousDay.ToString();
date = date + Period.FromDays(-1);
string test2 = previousDay.ToString();
date = date + Period.FromDays(-1);
string test3 = previousDay.ToString();