web-dev-qa-db-ja.com

月の最終日はどうやって取得できますか?

C#で月の最後の日を見つけるにはどうすればよいですか?

たとえば、日付が1980年3月8日の場合、8月の最終日(この場合は31)を取得するにはどうすればよいですか。

265
Gold

月の最後の日は、31が返されるようになります。

DateTime.DaysInMonth(1980, 08);
544
Oskar Kjellin
var lastDayOfMonth = DateTime.DaysInMonth(date.Year, date.Month);
154
Mark
DateTime firstOfNextMonth = new DateTime(date.Year, date.Month, 1).AddMonths(1);
DateTime lastOfThisMonth = firstOfNextMonth.AddDays(-1);
74
Henk Holterman

月と年を指定して、dateが必要な場合は、これは正しいようです。

public static DateTime GetLastDayOfMonth(this DateTime dateTime)
{
    return new DateTime(dateTime.Year, dateTime.Month, DateTime.DaysInMonth(dateTime.Year, dateTime.Month));
}
27
inspite

来月の最初の日から1日減算します。

DateTime lastDay = new DateTime(MyDate.Year,MyDate.Month+1,1).AddDays(-1);

また、12月の仕事にも必要な場合は、

DateTime lastDay = new DateTime(MyDate.Year,MyDate.Month,1).AddMonths(1).AddDays(-1);
9
Radu094

1行のコードで月の末日を見つけることができます。

int maxdt = (new DateTime(dtfrom.Year, dtfrom.Month, 1).AddMonths(1).AddDays(-1)).Day;
7
jithin

あなたはこのコードによって任意の月の最終日を見つけることができます:

var now = DateTime.Now;
var startOfMonth = new DateTime(now.Year, now.Month, 1);
var DaysInMonth = DateTime.DaysInMonth(now.Year, now.Month);
var lastDay = new DateTime(now.Year, now.Month, DaysInMonth);
7
mash

DateTimePicker:から

初めてのデート:

DateTime first_date = new DateTime(DateTimePicker.Value.Year, DateTimePicker.Value.Month, 1);

最後の日付:

DateTime last_date = new DateTime(DateTimePicker.Value.Year, DateTimePicker.Value.Month, DateTime.DaysInMonth(DateTimePicker.Value.Year, DateTimePicker.Value.Month));
4

特定のカレンダーの月末を取得するには(そして拡張方法を使用するには):

public static int DaysInMonthBy(this DateTime src, Calendar calendar)
{
    var year = calendar.GetYear(src);                   // year of src in your calendar
    var month = calendar.GetMonth(src);                 // month of src in your calendar
    var lastDay = calendar.GetDaysInMonth(year, month); // days in month means last day of that month in your calendar
    return lastDay;
}
2
shA.t
// Use any date you want, for the purpose of this example we use 1980-08-03.
var myDate = new DateTime(1980,8,3);
var lastDayOfMonth = new DateTime(myDate.Year, myDate.Month, DateTime.DaysInMonth(myDate.Year, myDate.Month));
1
Jasper Risseeuw

C#はわかりませんが、入手するための便利なAPI方法がないことが判明した場合は、その方法の1つがロジックに従うことです。

today -> +1 month -> set day of month to 1 -> -1 day

もちろん、それはあなたがそのタイプの日付の数学を持っていると仮定します。

1
RHSeeger