DateTime
たとえば、 がある場合2012-05-24
、それをその月の最終日 ( 2012-05-31
) である日付に変換する最も簡単な方法は何ですか。
9687 次
4 に答える
18
よく使用できます:
DateTime date = ...;
var endOfMonth = new DateTime(date.Year, date.Month,
DateTime.DaysInMonth(date.Year, date.Month));
の を作成することに注意してDateTime
ください。本当に欲しいものは何かを考えるべきです。(または、代わりに a を使用する場合は、私のNoda Timeライブラリを使用します。)Kind
Unspecified
Kind
LocalDate
于 2013-08-21T05:59:40.373 に答える
7
私が使用するいくつかの拡張メソッドは次のとおりです。
public static class DateTimeExtensionMethods
{
public static DateTime StartOfMonth(this DateTime date)
{
return new DateTime(date.Year, date.Month, 1);
}
public static DateTime EndOfMonth(this DateTime date)
{
return date.StartOfMonth().AddMonths(1).AddSeconds(-1);
}
}
私の場合、SQLクエリに使用しているので、月の最後の日の最後の1秒までにしたいことに注意してください。
コメントに基づいて、はい、時間ではなく日付だけが必要な場合は、次を使用できます。
public static DateTime EndOfMonth(this DateTime date)
{
return date.StartOfMonth().AddMonths(1).AddDays(-1);
}
またはDate
、結果のプロパティを使用して日付部分を取得するだけで、使用方法に応じて両方のケースを満たします。
于 2013-08-21T06:00:37.033 に答える
3
これを試して
DateTime dt = DateTime.Parse("2012-05-24");
DateTime lastDate = new DateTime(dt.Year, dt.Month, DateTime.DaysInMonth(dt.Year, dt.Month));
于 2013-08-21T06:05:31.977 に答える
1
これを試して
DateTime date = new DateTime(2012, 05, 24);
DateTime endOfMonth = new DateTime(date.Year, date.Month, DateTime.DaysInMonth(date.Year, date.Month));
出力: 2012 年 5 月 31 日12:00:00 AM
その後、これを必要な形式に変更できます。
于 2013-08-21T06:06:45.387 に答える