using System.Collections.Generic;
public static void Main()
startDate: '2018-1-01T00:00:00',
endDate: '2020-8-29T00:00:00',
startDate: '2018-1-01T00:00:00',
endDate: '2020-8-29T00:00:00',
startDate: '2018-9-01T00:00:00',
endDate: '2020-8-29T00:00:00',
var orgDatesList = JsonConvert.DeserializeObject<List<OrgDates>>(inputJSON);
var orgCalendarYearsList = new List<OrgCalendarYears>();
foreach(var orgDates in orgDatesList)
var fyStart = (orgDates.startDate.Month > orgDates.fiscalYearEnd ? orgDates.startDate.Year+1:orgDates.startDate.Year);
var fyEnd = (orgDates.endDate.Month > orgDates.fiscalYearEnd ? orgDates.endDate.Year+1:orgDates.endDate.Year);
var orgCalYears = new OrgCalendarYears()
calendarYears = Enumerable.Range(orgDates.startDate.Year, (orgDates.endDate.Year+1)-orgDates.startDate.Year).ToList(),
fiscalYears = Enumerable.Range(fyStart, (fyEnd+1)-fyStart).ToList()
orgCalendarYearsList.Add(orgCalYears);
var outputJSON = JsonConvert.SerializeObject(orgCalendarYearsList);
Console.WriteLine(outputJSON);
public class ExampleClass
public int sampleId {get;set;}
public string sampleString {get;set;}
public int orgId {get;set;}
public DateTime startDate {get;set;}
public DateTime endDate {get;set;}
public int fiscalYearEnd {get;set;}
public class OrgCalendarYears
public int orgId {get;set;}
public List<int> calendarYears {get;set;}
public List<int> fiscalYears {get;set;}