10

私が持っている場合var olddate = DateTime.Parse('05/13/2012');

と私は取得したいvar newdate = (the first of the month after olddate, 06/01/2012 in this case);

何をコーディングしますか?月+1を設定しようとしましたが、月にセッターがありません。

4

5 に答える 5

23

これを試して:

olddate = olddate.AddMonths(1);
DateTime newDate = new DateTime(olddate.Year, olddate.Month, 1, 
    0, 0, 0, olddate.Kind);
于 2012-12-06T21:47:54.057 に答える
7

これにより範囲外のエラーが発生することはなく、DateTimeの種類が保持されます。

dt = dt.AddMonths(1.0);
dt = new DateTime(dt.Year, dt.Month, 1, 0, 0, 0, dt.Kind);
于 2012-12-06T21:49:48.667 に答える
2

月と年を正しく定義し、1ª日を設定した後でなければなりません。これを試して:

// define the right month and year of next month.
var tempDate = oldDate.AddMonths(1);

// define the newDate with the nextmonth and set the day as the first day :)
var newDate = new DateTime(tempDate.Year, tempDate.Month, 1); //create 
于 2012-12-06T21:51:31.340 に答える
2

このシンプルなワンライナーを試してみてください。

var olddate = DateTime.Parse("05/13/2012");
var newdate = olddate.AddDays(-olddate.Day + 1).AddMonths(1);
// newdate == DateTime.Parse("06/01/2012")
于 2016-10-14T16:38:16.793 に答える
0

たくさんの例...あなたの位置を選んでください;)

var olddate = DateTime.Parse("05/12/2012");

int currentDay = ((DateTime)olddate).Day;
//can always replace the while loop and just put a 1 for current day
while(currentDay != 1)
   currentDay--;

var newdate = (DateTime.Parse(olddate.AddMonths(1).Month.ToString() + "/" + currentDay.ToString() + "/" + olddate.AddMonths(1).Year.ToString()));
于 2012-12-06T21:59:03.457 に答える