Bagaimana saya bisa menemukan hari terakhir bulan ini di C #?
Misalnya, jika saya memiliki tanggal 03/08/1980, bagaimana saya mendapatkan hari terakhir bulan 8 (dalam kasus ini 31)?
Bagaimana saya bisa menemukan hari terakhir bulan ini di C #?
Misalnya, jika saya memiliki tanggal 03/08/1980, bagaimana saya mendapatkan hari terakhir bulan 8 (dalam kasus ini 31)?
Jawaban:
Hari terakhir bulan Anda mendapatkan seperti ini, yang menghasilkan 31:
DateTime.DaysInMonth(1980, 08);
var lastDayOfMonth = DateTime.DaysInMonth(date.Year, date.Month);
DateTime
dari lastDayOfMonth
. Jujur baik cara bekerja dengan sangat baik. Ini argumen yang sangat bagus mana yang lebih baik. Saya sudah melakukan keduanya dan keduanya menghasilkan jawaban yang sama.
Anda dapat menemukan hari terakhir bulan itu dengan satu baris kode:
int maxdt = (new DateTime(dtfrom.Year, dtfrom.Month, 1).AddMonths(1).AddDays(-1)).Day;
DateTime.DaysInMonth
mengapa seseorang harus mencari cara yang tidak dapat dibaca dan rumit untuk mencapainya !? - Tetapi sebagai solusi yang valid dapat diterima;).
Dari DateTimePicker:
Kencan pertama:
DateTime first_date = new DateTime(DateTimePicker.Value.Year, DateTimePicker.Value.Month, 1);
Tanggal terakhir:
DateTime last_date = new DateTime(DateTimePicker.Value.Year, DateTimePicker.Value.Month, DateTime.DaysInMonth(DateTimePicker.Value.Year, DateTimePicker.Value.Month));
Untuk mendapatkan hari terakhir dalam sebulan di kalender tertentu - dan dalam metode ekstensi -:
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);
(kembalilah tanggal 29)
Saya tidak tahu C # tetapi, jika ternyata tidak ada cara API yang mudah untuk mendapatkannya, salah satu cara Anda dapat melakukannya adalah dengan mengikuti logika:
today -> +1 month -> set day of month to 1 -> -1 day
Tentu saja, itu mengasumsikan Anda memiliki matematika tanggal dari jenis itu.