我从事许多日期转换项目。例如,我研究太阳历,以及如何将其转换为公历日期,反之亦然。就一年中的天数而言,太阳历(波斯历)与公历几乎相似[有无le]。
但是我最近在一个与阴历有关的项目上工作。在研究农历时,我意识到没有任何一种逻辑方法可以将农历系统转换为太阳系(至少据我所知)。
这是我研究过的一些参考链接:
当我按照上面的链接进行培训和测试人员介绍算法时,我注意到它们都不是绝对正确的。
只需说一下,只要将"1441/02/30" [Safar 30th]
您要尝试的每种方法转换为公历日期即可。
我在这里输入了一些测试代码,但失败了:
CultureInfo arSA = new CultureInfo("ar-SA");
arSA.DateTimeFormat.Calendar = new HijriCalendar();
var dateValue = DateTime.ParseExact("1441/02/30", "yyyy/MM/dd", arSA);
return dateValue.ToString();
上面代码的错误:
日历System.Globalization.HijriCalendar不支持由字符串表示的DateTime。
HijriCalendar hc = new HijriCalendar();
DateTime date = new DateTime(1441, 2, 30, hc);
return date.ToString();
上面代码的错误:
“第二个月的日期必须在1到29之间。”
string hijri = "1441/2/30";
HijriCalendar hc = new HijriCalendar();
int year = int.Parse(hijri.Substring(0, 4));
string rem = hijri.Remove(0, 5);
int end = rem.IndexOf('/', 0);
int month = int.Parse(rem.Substring(0, end));
rem = rem.Remove(0, end + 1);
int day = int.Parse(rem);
DateTime date = new DateTime(year, month, day, hc);
return date.ToShortDateString();
上面代码的错误:
“第二个月的日期必须在1到29之间。”
之后,我试图了解是否有任何算法可将转换回历日期部署为格里高利历日期?
所以我测试了一些伊斯兰在线日期转换器,我很惊讶!
只需尝试输入"1441/2/30"
两个日期转换器。
返回的第一个和返回October 30, 2019
的第二个回29 October 2019
历 格里高利转换器
伊斯兰日期转换器-格里高利历转换器
所以我不知道有没有真正的算法可以将Hijri日期转换为Gregorian。
在此先感谢您的时间。
有关更多信息, 请https://www.wikiwand.com/simple/Islamic_calendar
更新:我知道这里没有任何正确的库。但是,如果某人对回历日历(所有界面)有一定的了解或详细信息,请在此描述,我真的想为所有人部署回历日历。
October 30, 2019 wed
or October 29, 2019 tue
。我现在尝试了。
Omar khayyam
是波斯数学家发明的。波斯日历有365天(a年为366天),但农历日历比波斯日历少11-12天。