วันอังคารที่ ๑๘ สิงหาคม พ.ศ. ๒๕๕๒

เพิ่มความสามารถให้ System.DateTime (DateTime Extensions)

Share this article on your facebook

จากบทความก่อนๆ ที่ผมเคยเขียนเกี่ยวกับ ฟังก์ชั่นหาวันแรกและวันสุดท้ายของเดือน (Get first and last day of month) ซึ่งเป็น Function ที่สร้างขึ้นไว้ใช้งานเอง แต่วันนี้ผมเจอเว็บของคุณ Fredrik Kalseth ผู้ที่ขยายความสามารถให้ System.DateTime ให้มีฟังก์ชันเหล่านั้นไว้ รวมทั้งอีกหลายๆ ฟังก์ชันที่เราใช้บ่อยๆ มาลองดูตัวอย่างกันครับ (ตัวอย่างข้างล่างทั้งหมด return เป็น DateTime object นะครับ มือใหม่บางคนอาจเข้าใจผิดว่าจะreturn เป็นอักษรวันที่ ซึ่งถ้าอยากได้แบบนั้นจริงๆ ก็ค่อยแปลง DateTime เป็น String อีกทีครับ)

'หาวันแรกของเดือนนี้
Now.First()

'หาวันจันทร์แรกของเดือนนี้
Now.First(DayOfWeek.Monday)

'หาวันสุดท้ายของเดือนนี้
Now.Last()

'หาวันศุกร์สุดท้ายของเดือนนี้
Now.Last(DayOfWeek.Friday)

'หาวันจันทร์ถัดไปจากวันนี้
Now.Next(DayOfWeek.Monday)

'กำหนดค่าเป็น วันนี้เวลา 17.30 น.
Now.SetTime(17, 30)

'ฟังก์ชัน SetTime มี overload 4 ตัว ให้กำหนดค่าตั้งแต่ชั่วโมงจนถึงมิลลิวินาที
SetTime(hour)
SetTime(hour, minute)
SetTime(hour, minute, second)
SetTime(hour, minute, second, millisecond)

หลังเห็นแล้วว่าน่าใช้ ขั้นต่อไปก็ไปโหลด assembly ที่ชื่อ DateTimeExtensions.dll จาก http://www.codeplex.com/DateTimeExtensions ขนาดเพียง 5 kB

เสร็จก็ add reference เข้ามาในโปรเจ็คของเรา ก็เป็นอันใช้งานได้

ช่วยลดโค้ดลงได้นิดหน่อย แบบนี้ถ้ามีคนใช้เยอะๆ ก็อยากให้ไมโครซอฟต์บรรจุฟังก์ชันเหล่านี้ลงไปใน DateTime มาตรฐานเลย..

แหล่งข้อมูลเพิ่มเติม :
DateTimeExtensions (www.CodePlex.com)
A Set of Useful Extension Methods for DateTime (Fredrik Kalseth Blog)