public static void Main()
DateTime MemberDoB = new DateTime(1989,1,5);
DateTime ClaimDate = DateTime.Today;
Console.WriteLine("Using " + ClaimDate.ToShortDateString() + " as Claim Date, " + MemberDoB.ToShortDateString() + " as Member's birth date");
Console.WriteLine("MemberAgeMonths: " + EvaluateMemberAgeMonths(ClaimDate,MemberDoB).ToString());
Console.WriteLine("MonthDifference: " + MonthDifference(ClaimDate,MemberDoB).ToString());
ClaimDate = ClaimDate.AddMonths(-20);
Console.WriteLine("Using " + ClaimDate.ToShortDateString() + " as Claim Date, " + MemberDoB.ToShortDateString() + " as Member's birth date");
Console.WriteLine("MemberAgeMonths: " + EvaluateMemberAgeMonths(ClaimDate,MemberDoB).ToString());
Console.WriteLine("MonthDifference: " + MonthDifference(ClaimDate,MemberDoB).ToString());
MemberDoB = new DateTime(2018,5,5);
ClaimDate = DateTime.Today;
Console.WriteLine("Using " + ClaimDate.ToShortDateString() + " as Claim Date, " + MemberDoB.ToShortDateString() + " as Member's birth date");
Console.WriteLine("MemberAgeMonths: " + EvaluateMemberAgeMonths(DateTime.Today,MemberDoB).ToString());
Console.WriteLine("MonthDifference: " + MonthDifference(DateTime.Today,MemberDoB).ToString());
MemberDoB = new DateTime(2018,5,15);
Console.WriteLine("Using " + ClaimDate.ToShortDateString() + " as Claim Date, " + MemberDoB.ToShortDateString() + " as Member's birth date");
Console.WriteLine("MemberAgeMonths: " + EvaluateMemberAgeMonths(DateTime.Today,MemberDoB).ToString());
Console.WriteLine("MonthDifference: " + MonthDifference(DateTime.Today,MemberDoB).ToString());
MemberDoB = new DateTime(2016,12,5);
Console.WriteLine("Using " + ClaimDate.ToShortDateString() + " as Claim Date, " + MemberDoB.ToShortDateString() + " as Member's birth date");
Console.WriteLine("MemberAgeMonths: " + EvaluateMemberAgeMonths(DateTime.Today,MemberDoB).ToString());
Console.WriteLine("MonthDifference: " + MonthDifference(DateTime.Today,MemberDoB).ToString());
MemberDoB = new DateTime(2016,11,5);
Console.WriteLine("Using " + ClaimDate.ToShortDateString() + " as Claim Date, " + MemberDoB.ToShortDateString() + " as Member's birth date");
Console.WriteLine("MemberAgeMonths: " + EvaluateMemberAgeMonths(DateTime.Today,MemberDoB).ToString());
Console.WriteLine("MonthDifference: " + MonthDifference(DateTime.Today,MemberDoB).ToString());
MemberDoB = new DateTime(2016,10,5);
Console.WriteLine("Using " + ClaimDate.ToShortDateString() + " as Claim Date, " + MemberDoB.ToShortDateString() + " as Member's birth date");
Console.WriteLine("MemberAgeMonths: " + EvaluateMemberAgeMonths(DateTime.Today,MemberDoB).ToString());
Console.WriteLine("MonthDifference: " + MonthDifference(DateTime.Today,MemberDoB).ToString());
MemberDoB = new DateTime(2016,11,6);
Console.WriteLine("Using " + ClaimDate.ToShortDateString() + " as Claim Date, " + MemberDoB.ToShortDateString() + " as Member's birth date");
Console.WriteLine("MemberAgeMonths: " + EvaluateMemberAgeMonths(DateTime.Today,MemberDoB).ToString());
Console.WriteLine("MonthDifference: " + MonthDifference(DateTime.Today,MemberDoB).ToString());
MemberDoB = new DateTime(2016,10,6);
Console.WriteLine("Using " + ClaimDate.ToShortDateString() + " as Claim Date, " + MemberDoB.ToShortDateString() + " as Member's birth date");
Console.WriteLine("MemberAgeMonths: " + EvaluateMemberAgeMonths(DateTime.Today,MemberDoB).ToString());
Console.WriteLine("MonthDifference: " + MonthDifference(DateTime.Today,MemberDoB).ToString());
public static int EvaluateMemberAgeMonths(DateTime now, DateTime memberDateOfBirth)
DateTime birthday = Convert.ToDateTime(memberDateOfBirth);
int currentYear, currentMonth, birthMonth, birthYear, years, months;
currentYear = Convert.ToInt32(DateTime.Now.Year);
currentMonth = Convert.ToInt32(DateTime.Now.Month);
birthYear = Convert.ToInt32(birthday.Year);
birthMonth = Convert.ToInt32(birthday.Month);
years = currentYear - birthYear;
if (currentMonth - birthMonth > 0)
months = Convert.ToInt32(currentMonth - birthMonth);
months = Convert.ToInt32((12 - birthMonth) + currentMonth);
if ((currentMonth - birthMonth == 0 || currentMonth - birthMonth == 1) && birthday.Day - now.Day > 0)
public static int MonthDifference(DateTime now, DateTime memberDateOfBirth)
int months = Math.Abs((now.Month - memberDateOfBirth.Month) + 12 * (now.Year - memberDateOfBirth.Year));
if ((now.Month - memberDateOfBirth.Month == 0 || now.Month - memberDateOfBirth.Month == 1) && memberDateOfBirth.Day - now.Day > 0)