หากว่าเราต้องการหาว่า
" เดือนนี้มีกี่สัปดาห์ และ แต่ละสัปดาห์เริ่มตั้งแต่ไหนถึงวันไหน เราสามารถทำได้ครับ "
DateTime dt = new DateTime(2022,10,1);
System.Globalization.Calendar mycal = CultureInfo.CurrentCulture.Calendar;
IEnumerable<int> daysInMonth = Enumerable.Range(1, mycal.GetDaysInMonth(dt.Year, dt.Month));
List<Tuple<DateTime, DateTime>> weeks = daysInMonth.Select(day => new DateTime(dt.Year, dt.Month, day))
.GroupBy(d => mycal.GetWeekOfYear(d, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Sunday))
.Select(g => new Tuple<DateTime, DateTime>(g.First(), g.Last()))
.ToList();
int i = 1;
foreach (Tuple<DateTime, DateTime> w in weeks)
{
string week = "สัปดาหที่ " + i + "( " + String.Format("{0:dd/MM/yyyy} - {1:dd/MM/yyyy}", w.Item1, w.Item2) + ")";
Console.WriteLine(week);
i++;
}
output