C#:我如何减去两个日期?

l--*_*''' 7 c# winforms

这是我的代码:

DateTime date1 = new DateTime(byear, bmonth, bday, 0, 0, 0);
DateTime datenow =  DateTime.Now;
DateTime date2 = datenow - date1
Run Code Online (Sandbox Code Playgroud)

在最后一行,我收到此错误:

错误1无法将类型'System.TimeSpan'隐式转换为'System.DateTime'

如何减去两个日期?

dev*_*ium 19

那么关键是,如果你想到它,将一个日期减去另一个不应该产生一个日期,它应该产生一个时间跨度.这就是使用DateTime.Subtract()时会发生的情况.

TimeSpan timeSpan = datenow - date1; //timespan between `datenow` and `date1`
Run Code Online (Sandbox Code Playgroud)

这将使您当前的代码工作.

另一方面,如果您要减去,比如说,从您的约会起一年后,您可以使用:

DateTime oneYearBefore = DateTime.Now.AddYears(-1); //that is, subtracts one year
Run Code Online (Sandbox Code Playgroud)

  • - 1因为`date1.Subtract(任何日期)`给出一个`TimeSpan`,而不是`DateTime` ...需要传递`Subtract()`方法a`Timespan`来得到`DateTime` ...否则,只需使用`AddDays()`方法. (3认同)