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();
虽然我使用-
运营商,并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 Time :)
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();
嗯,我说,这是可能明显对大多数人来说!感谢这样一个完整的答案! – CompanyDroneFromSector7G 2012-02-07 11:30:47
@bukko请将上面的帖子设置为“答案” – fizzbuzz 2012-02-07 11:36:42
@hotadvice我试过 - 有一段时间延迟。有耐心! – CompanyDroneFromSector7G 2012-02-07 11:48:06