find months between two dates c# code example
Example 1: compute months c#
public static int GetMonthDifference(DateTime startDate, DateTime endDate)
{
int monthsApart = 12 * (startDate.Year - endDate.Year) + startDate.Month - endDate.Month;
return Math.Abs(monthsApart);
}
Example 2: How to get number of months between 2 dates c#
class Program
{
static void Main(string[] args)
{
DateTime firstDate = new DateTime(2017, 03, 03);
DateTime secondDate =new DateTime(2018, 06, 06);
int months= MonthDiff(firstDate, secondDate);
Console.WriteLine("First Date :"+firstDate);
Console.WriteLine("Second Date :" + secondDate);
Console.WriteLine("Months :"+months);
Console.ReadLine();
}
public static int MonthDiff(DateTime d1, DateTime d2)
{
int m1;
int m2;
if(d1<d2)
{
m1 = (d2.Month - d1.Month);
m2 = (d2.Year - d1.Year) * 12;
}
else
{
m1 = (d1.Month - d2.Month);
m2 = (d1.Year - d2.Year) * 12;
}
return m1 + m2;
}
}
Example 3: get list of months and year between two dates c#
public static IEnumerable<(string Month, int Year)> MonthsBetween(
DateTime startDate,
DateTime endDate)
{
DateTime iterator;
DateTime limit;
if (endDate > startDate)
{
iterator = new DateTime(startDate.Year, startDate.Month, 1);
limit = endDate;
}
else
{
iterator = new DateTime(endDate.Year, endDate.Month, 1);
limit = startDate;
}
var dateTimeFormat = CultureInfo.CurrentCulture.DateTimeFormat;
while (iterator <= limit)
{
yield return (
dateTimeFormat.GetMonthName(iterator.Month),
iterator.Year
);
iterator = iterator.AddMonths(1);
}
}