Определить, является ли данное число суммой одного и того же григорианского и хиджринского года?

Есть ли способ узнать, является ли данное число суммой как хиджры [1], так и григорианского [2] одного и того же года?

Пример: 3452 = 2015 + 1437

[1] Хиджры - исламский календарь. https://en.wikipedia.org/wiki/Islamic_calendar

[2] Григорианский календарь. https://en.wikipedia.org/wiki/Gregorian_calendar

1 ответ

Возможно, это немного грубый подход, который потребует от вас предварительно заполнить два списка датами (но это не так уж и плохо, всего около 2000 элементов каждый):

 // 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};

После того, как вы отфильтровали списки возможных совпадений, вы можете определить, какие из них совпадают в этом году. И вы можете сделать это, используя один из ответов здесь:

Преобразование григорианской даты в дату хиджры

Другие вопросы по тегам