如何从日期时间中减去一年和一天?

ast*_*boy 1 c# datetime

我看到这样的回答这个 ,但是如何在这之后加1的一天?喜欢2年前和1天.

var myDate = DateTime.Now;
var newDate = myDate.AddYears(-2);
var NewExpiryDate = myDate.AddDays(-1);
var NewFinalDate = ?
Run Code Online (Sandbox Code Playgroud)

suj*_*lil 7

你做错了什么:

myDate将是当前日期,然后您-2使用当前日期添加年份并分配给newDate.这将不会更新myDate其仍然是当前日期,因此您需要添加-1天数newDate以获得所需的输出.更简单的方法你可以像这样使用:

var newDate = myDate.AddYears(-2).AddDays(-1);
Run Code Online (Sandbox Code Playgroud)

注意:日期函数.AddYears()不会更改源,它将返回一个新的DateTime,它将指定的年数添加到此实例的值中.正如Soner所说,DateTime是一个不可变类型,这意味着一个对象的状态在创建后无法修改.