2017-11-20 3 views
0

これはおそらく愚かな質問です。前月のデータを取得するために使用できる変数の値を設定することは可能ですか?たとえば、9月24日の場合は、8月1日から8月31日までのすべてのものが必要です。したがって、現在の日付は重要ではありません。私はStock Takeレポートでそれを使用しています。私は現在、これを使用する:前月の満月に等しい日付変数を設定してください

var firstDayofPreviousMonth = DateTime.Today.AddMonths(-1);

レポートは毎月1日に自動的に実行されます。だから私は思った、ちょうど1ヶ月後から引き出すが、私の上司は突然彼女の心を変え、毎日レポートを取りたいと思っている。

これは意味がありますか?詳細が必要な場合は、コメントをポップしてください。

答えて

2

は、ここで私はこのために使用するメソッドです:

public static DateTime GetStartOfLastMonth(DateTime dt) 
     { 
      var date = dt.AddMonths(-1); 
      return new DateTime(date.Year, date.Month, 1, 0, 0, 0, DateTimeKind.Local); 
     } 

     public static DateTime GetEndOfLastMonth(DateTime dt) 
     { 
      var date = dt.AddMonths(-1); 
      var daysInLastMonth = DateTime.DaysInMonth(date.Year, date.Month); 

      return new DateTime(date.Year, date.Month, daysInLastMonth, 0, 0, 0, DateTimeKind.Local); 
     } 

注:あなたのケースに応じて、あなたが23,59,59するGetEndOfLastMonthを変更することもできます。私は日付で動作するので、これはこのコードが入っているライブラリとは無関係です。

+0

@JudithJoubertは時間部分に '22'を渡しますか? – zaitsman

+0

ありがとう、私はそれを得た。ありがとうございました。あなたの助けに感謝。 '2017-10-31 11:59:59 PM' ' 2017-10-01 01:05:00 AM ' –

+1

私は12人の方がいいです(私はこれを始めました)ので、私はあなたの答えをupvoteします最後に3.ありがとうたくさんのねえ –

0
DateTime refDate = DateTime.Now.AddMonths(-1); 
DateTime firstDayPreviousMonth = new DateTime(refDate.Year, refDate.Month, 1); 
DateTime lastDayPreviousMonth = new DateTime(refDate.Year, refDate.Month, DateTime.DaysInMonth(refDate.Year,refDate.Month)); 
+4

あなたの答えを説明してください。 – Eregrith

+0

私は質問を理解していないように見える –

+0

理解しないで質問に答えることは可能ですか? – Mamun

関連する問題