任何人都可以帮我根据当前日期使用C#计算过去六个月,1年,2年的日期。例如,假设我的当前日期是09-11-2012
我需要找出日期09-05-2012, 09-05-2010,09-05-2009
等等。我知道它是一个数学技巧,但我正在寻找与C#类似的实现。
答案 0 :(得分:3)
只需使用内置日期和日历库。
快速方法是使用DateTime
类,但如果您想要正确地执行操作,那么您可以使用Calendar
类,这样可以更好地控制特定于文化的信息(因为星期一是中国的第一天,但不是在法国。
反正:
DateTime currentDate = new DateTime( 2012, 11, 09 ); // assuming 9th November 2012
DateTime sixMonthsAgo = currentDate.AddMonths( -6 );
DateTime yearAgo = currentDate.AddYears( -1 );
DateTime twoYearsAgo = currentDate.AddYears( -2 );
顺便说一句,请不要用“dd-mm-yyyy”格式写日期(不能用斜线或短划线)因为它含糊不清 - 这个网站有很多美国观众,并且出于某种原因'merkins使用'mm / dd / yyyy“,这对我没有意义。理想的格式是“yyyy-MMM-dd”(其中“mmm”是三个字母的月份名称,例如“Jan”,“Feb”,“Mar”等),或者至少在“yyyy-mm-dd”中“格式,更符合ISO 8601标准。”
答案 1 :(得分:1)
使用 DateTime
DateTime value = new DateTime(2012, 11, 09);
DateTime nYearsAgo = value.AddYears(-n);
答案 2 :(得分:1)
诀窍是在DateTime对象上使用.AddMonths()
或.AddYears()
方法,并提供负值以实现减法。
答案 3 :(得分:0)
您可以查看DateTime Methods,更具体地说是AddMonths和AddYears。