C # 'da ayın son gününü nasıl bulabilirim?
Örneğin, 03/08/1980 tarihine sahipsem, 8 ayın son gününü nasıl alırım (bu durumda 31)?
C # 'da ayın son gününü nasıl bulabilirim?
Örneğin, 03/08/1980 tarihine sahipsem, 8 ayın son gününü nasıl alırım (bu durumda 31)?
Yanıtlar:
Ayın son günü böyle olur, bu da 31 değerini döndürür:
DateTime.DaysInMonth(1980, 08);
var lastDayOfMonth = DateTime.DaysInMonth(date.Year, date.Month);
DateTimealdım lastDayOfMonth. Dürüst olmak gerekirse her iki şekilde de mükemmel çalışır. Hangi yolun daha iyi olduğu bilgiç bir argüman. Her iki şekilde de yaptım ve her ikisi de aynı cevabı veriyor.
Ayın son gününü tek bir kod satırı ile bulabilirsiniz:
int maxdt = (new DateTime(dtfrom.Year, dtfrom.Month, 1).AddMonths(1).AddDays(-1)).Day;
DateTime.DaysInMonthbirisinin neden bunu elde etmek için bu okunamayan ve karmaşık yolu araması gerektiğini merak ediyorum !? - Ama geçerli bir çözüm olarak kabul edilebilir;).
itibaren DateTimePicker:
İlk buluşma:
DateTime first_date = new DateTime(DateTimePicker.Value.Year, DateTimePicker.Value.Month, 1);
Son tarih:
DateTime last_date = new DateTime(DateTimePicker.Value.Year, DateTimePicker.Value.Month, DateTime.DaysInMonth(DateTimePicker.Value.Year, DateTimePicker.Value.Month));
Belirli bir takvimde ve bir uzantı yönteminde - ayın son gününü almak için:
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;
}
// 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));
var myDate = new DateTime(1980, 1, 31);(29'u döndürür)
C # bilmiyorum ama, eğer onu elde etmek için uygun bir API yolu yoksa, bunu yapmanın yollarından biri mantığı takip etmektir:
today -> +1 month -> set day of month to 1 -> -1 day
Tabii ki, bu tür bir tarih matematiğiniz olduğunu varsayar.