เมธอด DateTime.DaysInMonth() ใน C# คืนจำนวนวันในเดือนและปีที่ระบุ เช่น 31 สำหรับเดือนมกราคม (เดือนที่ 1)
ไวยากรณ์
public static int DaysInMonth(int year, int month);
ตัวอย่างที่ 1: ตรวจสอบจำนวนวันในเดือนต่างๆ
using System;
public class Demo
{
public static void Main()
{
DateTime date1 = new DateTime(2019, 08, 20, 6, 20, 40);
DateTime date2 = new DateTime(2019, 06, 20, 6, 20, 40);
Console.WriteLine("DateTime 1 = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", date1);
Console.WriteLine("Days in DateTime 1 month = " + DateTime.DaysInMonth(2019, 08));
Console.WriteLine("\nDateTime 2 = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", date2);
Console.WriteLine("Days in DateTime 2 month = " + DateTime.DaysInMonth(2019, 06));
int res = date1.CompareTo(date2);
// คืนค่า >0 เนื่องจาก date1 อยู่หลัง date2
Console.WriteLine("\nReturn Value (comparison) = " + res);
}
}
ผลลัพธ์
DateTime 1 = 20 August 2019, 06:20:40
Days in DateTime 1 month = 31
DateTime 2 = 20 June 2019, 06:20:40
Days in DateTime 2 month = 30
Return Value (comparison) = 1
ตัวอย่างที่ 2: กุมภาพันธ์ ปีอธิกสุรทิน vs ปกติ
using System;
public class Demo
{
public static void Main()
{
int year1 = 2019, year2 = 2016;
int FebMonth = 2;
Console.WriteLine("Days in 2019, Feb month = " + DateTime.DaysInMonth(year1, FebMonth));
Console.WriteLine("Days in 2016, Feb month = " + DateTime.DaysInMonth(year2, FebMonth));
}
}
ผลลัพธ์
Days in 2019, Feb month = 28
Days in 2016, Feb month = 29
ประโยชน์: คำนวณวันในเดือนได้ถูกต้องอัตโนมัติ รวมถึงปีอธิกสุรทิน (Leap Year)