-4

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

4

4 回答 4

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)。

于 2012-11-09T07:36:59.853 回答
1

使用日期时间

DateTime value = new DateTime(2012, 11, 09);
DateTime nYearsAgo = value.AddYears(-n); 
于 2012-11-09T07:35:50.730 回答
1

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

于 2012-11-09T07:38:31.787 回答
0

您可以查看DateTime 方法,更具体地说是AddMonthsAddYears

于 2012-11-09T07:38:28.323 回答