求教:DateTime.AddYears()的一年是怎么推算的?

                        year = model.Jdate.ToString("yyyy");
                            month = model.Jdate.ToString("MM");
            day = model.Jdate.ToString("dd");
            DateTime dt = new DateTime(Convert.ToInt32(year), Convert.ToInt32(month), Convert.ToInt32(day));             
            date = dt.AddYears(1).ToString("yyyy年MM月dd日");        

                            现有需求:从资料库取出日期,并且计算一整年后的日期。
                            但是似乎用AddYears()得到的日期并不准确,总是差了一天。

AddYears 方法计算生成的年,同时考虑闰年。 生成的 DateTime 对象的月和时间部分与此实例相同。是考虑了闰年的,官方写的。得到的时间差一天?还是差几个小时,具体些?

怎么就差了一天呢,1月1号,肯定是道12月31号是一年,不会是到1月1号是一年

如果 value + DateTime.Year 也是一个闰年返回值,该年份表示闰日。 例如,如果四年添加到2012年2月29日,日期返回为2016年2月29日。
如果 value + DateTime.Year 不是一个闰年,返回值表示该年闰日的前一天。 例如,如果1年添加到2012年2月29日,日期返回为2013年2月28日。 

    [https://msdn.microsoft.com/zh-cn/library/system.datetime.addyears.aspx](https://msdn.microsoft.com/zh-cn/library/system.datetime.addyears.aspx "")

年月日部分:变成下一年的同月同日,如果日数超过该月的最大日数就取最大日数(唯一的就是闰年的2月29到了下一年变成2月28)。
时间部分:保持不变。

2016年是闰年。楼主是计算的今年的时间么?

AddYears 方法计算生成的年,同时考虑闰年

呵呵 既然每次都给你多加一天,你再减去一天不就可以了, 何必纠结呢