任何人都可以帮助我使用 C# 根据当前日期计算过去六个月、1 年、2 年的日期。例如,假设我当前的日期是09-11-2012
我需要找出日期09-05-2012, 09-05-2010,09-05-2009
等。我知道这是一个数学技巧,但我正在寻找与 C# 类似的实现。
问问题
141 次
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 方法,更具体地说是AddMonths和AddYears。
于 2012-11-09T07:38:28.323 回答