根据当前日期计算日期

时间:2012-11-09 07:33:37

标签: c# datetime date-format

任何人都可以帮我根据当前日期使用C#计算过去六个月,1年,2年的日期。例如,假设我的当前日期是09-11-2012我需要找出日期09-05-2012, 09-05-2010,09-05-2009等等。我知道它是一个数学技巧,但我正在寻找与C#类似的实现。

4 个答案:

答案 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,更具体地说是AddMonthsAddYears