public static void Main()
DateTime start = new DateTime(2016,8,1);
DateTime end = new DateTime(2017,8,31);
Console.WriteLine("Between {0:yyyy/MM/dd} and {1:yyyy/MM/dd} are {2} years and {3} noda years",
start, end, GetYears(start,end), GetNodaYears(start, end));
start = new DateTime(2016,8,1);
end = new DateTime(2017,8,1);
Console.WriteLine("Between {0:yyyy/MM/dd} and {1:yyyy/MM/dd} are {2} years and {3} noda years",
start, end, GetYears(start,end), GetNodaYears(start, end));
start = new DateTime(2016,8,1);
end = new DateTime(2017,7,31);
Console.WriteLine("Between {0:yyyy/MM/dd} and {1:yyyy/MM/dd} are {2} years and {3} noda years",
start, end, GetYears(start,end), GetNodaYears(start, end));
start = new DateTime(2015,8,1);
end = new DateTime(2016,8,1);
Console.WriteLine("Between {0:yyyy/MM/dd} and {1:yyyy/MM/dd} are {2} years and {3} noda years",
start, end, GetYears(start,end), GetNodaYears(start, end));
start = new DateTime(2015,8,1);
end = new DateTime(2016,7,31);
Console.WriteLine("Between {0:yyyy/MM/dd} and {1:yyyy/MM/dd} are {2} years and {3} noda years",
start, end, GetYears(start,end), GetNodaYears(start, end));
start = new DateTime(2014,1,1);
end = new DateTime(2015,12,31);
Console.WriteLine("Between {0:yyyy/MM/dd} and {1:yyyy/MM/dd} are {2} years and {3} noda years",
start, end, GetYears(start,end), GetNodaYears(start, end));
start = new DateTime(2014,1,1);
end = new DateTime(2016,12,31);
Console.WriteLine("Between {0:yyyy/MM/dd} and {1:yyyy/MM/dd} are {2} years and {3} noda years",
start, end, GetYears(start,end), GetNodaYears(start, end));
start = new DateTime(2014,1,1);
end = new DateTime(2017,12,31);
Console.WriteLine("Between {0:yyyy/MM/dd} and {1:yyyy/MM/dd} are {2} years and {3} noda years",
start, end, GetYears(start,end), GetNodaYears(start, end));
private static double GetYears(DateTime start, DateTime end){
double DaysInAYear = 365;
TimeSpan ts1 = end.Subtract(start);
return ts1.TotalDays / DaysInAYear;;
private static long GetNodaYears(DateTime start, DateTime end)
LocalDate nStart = new NodaTime.LocalDate(start.Year, start.Month, start.Day);
LocalDate nEnd = new NodaTime.LocalDate(end.Year, end.Month, end.Day);
Period period = Period.Between(nStart, nEnd,
PeriodUnits.Years | PeriodUnits.Days);