Özellikle raporlama uygulamalarında, aylık dönemlere ait sorgulama yapılırken ilgili ayın ilk ve son günlerinin bilinmesi gerekir.
C# uygulamamızda, yazacağımız basit iki tane extension method ile ayın ilk ve son günlerini bulan kodu basitleştirebiliriz.
public static class ExtensionMethods { public static DateTime AyinIlkGunu(this DateTime dt) { return new DateTime(dt.Year, dt.Month, 1); }
public static DateTime AyinSonGunu(this DateTime dt)
{
return dt.AyinIlkGunu().AddMonths(1).AddDays(-1);
} }</pre>
Extension Method‘ların kullanımı;
static void Main(string[] args)
{
DateTime BuAy_BaslangicTarihi = DateTime.Now.AyinIlkGunu();
DateTime BuAy_BitisTarihi = DateTime.Now.AyinSonGunu();
DateTime GecenAy_BaslangicTarihi = DateTime.Now.AddMonths(-1).AyinIlkGunu();
DateTime GecenAy_BitisTarihi = DateTime.Now.AddMonths(-1).AyinSonGunu();
}Örnek kodun tamamı;
using System;
class Program
{
static void Main(string[] args)
{
DateTime BuAy_BaslangicTarihi = DateTime.Now.AyinIlkGunu();
DateTime BuAy_BitisTarihi = DateTime.Now.AyinSonGunu();
DateTime GecenAy_BaslangicTarihi = DateTime.Now.AddMonths(-1).AyinIlkGunu();
DateTime GecenAy_BitisTarihi = DateTime.Now.AddMonths(-1).AyinSonGunu();
}
}
public static class ExtensionMethods
{
public static DateTime AyinIlkGunu(this DateTime dt)
{
return new DateTime(dt.Year, dt.Month, 1);
}
public static DateTime AyinSonGunu(this DateTime dt)
{
return dt.AyinIlkGunu().AddMonths(1).AddDays(-1);
}
}
Senior Software Engineer, @Microsoft
Ada ve Ege'nin babası ;)
Makale Adedi: 484