确定给定的数字是否是同一个公历年和回历年的总和

本文关键字:同一个 数字 是否是 | 更新日期: 2023-09-27 18:18:14

是否有一种方法可以找出一个给定的数字是否是同一年的回历[1]和公历[2]的总和?

的例子:3452 = 2015 + 1437

[1]伊斯兰历。https://en.wikipedia.org/wiki/Islamic_calendar

[2]公历。https://en.wikipedia.org/wiki/Gregorian_calendar

确定给定的数字是否是同一个公历年和回历年的总和

这可能是一个蛮力的方法,这将需要您预先填充两个列表与日期(但它不是那么糟糕,每个只有大约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};

过滤掉可能匹配的列表后,您就可以计算出哪些是同一年。你可以使用下面的答案之一:

将公历日期转换为回历日期