This perhaps is a bit of a brute force approach, that will require you to pre-populate two lists with dates (but it's not that bad, only around 2000 elements each):
// Fill this up with all Hijri dates witin your range
List<int> hijriDates = new List<int>() { 1,2, 1437 };
// Fill this up with all gregorian dates within your range
List<int> gregorianDates = new List<int>() { 3,2, 2015 };
int number = 3452;
var result =
from i in hijriDates
from j in gregorianDates
where i + j == number
select new { Hijri = i , Gregorian = j};
After you've filtered down the lists of possible matches, you can then work out which of those are the same year. And you can do this using one of the answers from here:
Converting Gregorian date to Hijri date