I made an small change on jinesh sam solution as it was looping for ever.
On the if (endDate <= monthEndDate) you need to add startDate = startDate.AddDays(daysInMonth); to stop looping.
Thanks for the script Jinesh it saves me a lot of time for my project!
var startDate = new DateTime(2022, 01, 01);
var endDate = new DateTime(2022, 12, 31);
while (startDate < endDate)
{
var lastDayOfMonth = DateTime.DaysInMonth(startDate.Year, startDate.Month);
var daysInMonth = lastDayOfMonth - startDate.Day;
var monthEndDate = startDate.AddDays(daysInMonth);
if (endDate <= monthEndDate)
{
Console.WriteLine("{0} {1} {2}", startDate.ToShortDateString(), endDate.ToShortDateString(), (endDate - startDate).TotalDays + 1);
startDate = startDate.AddDays(daysInMonth);
}
else
{
Console.WriteLine("{0} {1} {2}", startDate.ToShortDateString(), monthEndDate.ToShortDateString(), (monthEndDate - startDate).TotalDays + 1);
startDate = monthEndDate.AddDays(1);
}
}