根据当前日期计算日期



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

只需使用内置日期和日历库。

快速的方法是使用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"," mar"等),或者至少在" yyyy-mm-dd中"格式,更符合ISO 8601)。

使用 dateTime

DateTime value = new DateTime(2012, 11, 09);
DateTime nYearsAgo = value.AddYears(-n); 

诀窍是在DateTime对象上使用.AddMonths().AddYears()方法,并提供负值以实现减法。

您可以查看DateTime方法,更具体地说是addmonths和addyears。

最新更新