Ayın ilk ve son gününü bulmak için Extension Method
Ö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);
}
}
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);
}
}
İlgili diğer başlıklar:
- Birkaç Faydalı Extension Method
- C# ile Tarihin Gününü Bulma
- C# Klasörün Sadece-Okunabilir Olduğunu Döndüren Extension Method
- Generic Dictionary sınıfına karıştırıcı (shuffle) Extension Method yazalım
- virtual olmayan method’ları override etmek
- C# Diskteki Boş Alan Miktarını Bulmak
- C# SortedSet sınıfı
- Dizide bir elemandan kaç adet olduğunu bulalım
- C# ile LINQ filtrelerinin üç farklı kullanımı (Predicate Function, Anonymous Method, Lambda Expression)
- C# Windows’un Boş Zamanını (Idle Time) Bulmak