สวัสดีครับกลับมาพบกันอีกในบทความนี้ เนื่องจากมีเพื่อนคนนึงมาปรึกษาผมว่าอยากจะเขียนโปรแกรมด้วยภาษา vb เพื่อหาวันที่สุดท้ายของทุกๆเดือนในปีที่เรากําหนดได้อย่างไร ผมจึงหาวิธีการเขียนจนได้ และนํามาแบงปันเพื่อนๆ ได้ศึกษากันครับ ตัวอย่าง ถ้าเราต้องการหาวันสุดท้ายของแต่ละเดือนในปี 2017 เราจะได้ผลออกมาประมาณนี้ครับ
วิธีที่ผมจะนําเสนอดังต่อไปนี้สามารถบอกได้ถึงแม้ว่าเป็นปี Leave Year มาดู function ที่ผมเขียนเป็นตัวอย่าง
Function getLastDayOfAllMunth(ByVal year As Long) As String()
Dim thisYear = New DateTime(year, 1, 1)
Dim lastDayOfAllMonth(11) As String
For i As Integer = 0 To lastDayOfAllMonth.Length - 1
lastDayOfAllMonth(i) = thisYear.AddMonths(i + 1).AddDays(-1).ToString("dd/MM/yyyy")
Next
Return lastDayOfAllMonth
End Function
จริงๆแล้วสามารถนํา Function นี้ไปใช้ได้เลยครับ โดย Function จะ Return เป็น Array ออกมา แต่ผมจะอธิบาย Code คร่าวๆ เพื่อใครจะนําไปประยุกต์ใช้ การทํางานของ Code คือ เริ่มด้วยสร้าง Object ของ DateTime เป็นวันที่ 1/1/ปีที่ต้องการ หลังจากนั้นเราจะเพิ่มเดือนเข้าไป 1 เดือน แล้วลบจํานวนวันไป 1 วัน เราจะได้วันสุดท้ายของเดือน 1 เพิ่มเดือนลักษณะนี้ไปเรื่อยๆจนครบ 12 เดือน เราก็จะได้วันสุดท้ายของทุกๆเดือนในปีนั้นๆ Project ตัวอย่างที่นี่ครับ github.com/mrthiti/LastDayOfEachMonth