25

asp.netで前の月の日付を取得する必要があります。つまり、現在の日付が2013年5月2日の場合、前の日付を2013年5月1日として表示します。これを解決する方法は?

4

3 に答える 3

49

これを試して :

DateTime d = DateTime.Now;
d = d.AddMonths(-1);
于 2013-02-05T07:48:39.797 に答える
14

解決策は、1 か月を引くことです。

DateTime.Now.AddMonths(-1)

または、日時オブジェクトをゼロから作成するだけではない場合:

var previousDate = DateTime.Now.AddMonth(-1);

var date = new DateTime(previousDate.Year, previousDate.Month, DateTime.Now.Day);

今回は、年と月が正しく、日が同じままであることが保証されます。(ただし、これは 3 月 30 日のような場合に安全なアルゴリズムではなく、前の日付が 2 月の 28/29 である必要があるため、1 か月の減算の最初の提案を使用することをお勧めします)

于 2013-02-05T07:48:18.937 に答える
5

文字列形式の日時がすでにある場合

var strDate = "5/1/2013";
var dateTime = DateTime.ParseExact(strDate, 
                                   "dd/MM/yyyy",
                                   CultureInfo.InvariantCulture);

var lastMonthDateTime = dateTime.AddMonths(-1);

それ以外の場合は、オブジェクトのメソッドDateTimeを呼び出すだけです。AddMonths(-1)

于 2013-02-05T07:52:39.533 に答える