在 StackOverflow 和 CodeReview 网站上搜索,尚未尝试过此问题/帖子中描述的方法;它将 5 个伊斯兰日历的日期转换为 Javascript 中 18 个可用日历中的任何一个,而无需使用外部日期库或使用复杂的数学/天文公式。
\n我们都知道 Javascript 有一个内置方法(Intl.DateTimeFormat())将公历日期转换为各种日历日期(18 个世界日历),包括输出字符串的格式。
\n然而,Javascript并没有提供反向操作的内置方法,即将18个世界日历日期转换回公历日期(包括伊斯兰历日期)或其他日历。为此,您需要使用外部日期库来进行转换,例如“moment.js”等。
\n这里使用的方法/代码不使用外部库,而是使用Javascript Calendar Conversion by Target Approximation Method。下面的流程图总结了该方法的概念,该方法可用于将其他日历转换为剩余日历。
\n下面的简短 Javascript 函数提供了将五 (5) 个伊斯兰 (Hijri) 日历日期(从伊斯兰教纪年 -280,803 到 +281,510 AH)中的任何一个转换为以下 18 个 Javascript 日历中的任何一个的功能,并提供格式化选项结果输出:
\n"buddhist", "chinese", "coptic", "dangi", "ethioaa", "ethiopic", "gregory", "hebrew", "indian", "islamic", "islamic-umalqura", "islamic-tbla", "islamic-civil", "islamic-rgsa", "iso8601", "japanese", "persian", "roc", "islamicc".
该方法不使用外部库,也不使用复杂的数学或天文公式,仅依赖于 Javascript …
我会将格里高利日期转换为Hijri(伊斯兰教)日期.可以在网上搜索后,我找到了一个转换它的源代码.我将代码从Java和PHP转换为C base.
工具有时候工作没有任何问题.但有些日子有问题.
我需要你的帮助来修复工具或可用的代码,没有任何问题!BTW我发现了另一个源代码(http://emr.cs.iit.edu/~reingold/calendar.C),它是C++库.因为我不知道C++是否有人可以将其转换为C Base或Objective C将是完美的(仍然不确定此代码是否正常工作).
PS您可以在以下网址查看正确的日期:islamicfinder.org/Hcal/index.php
void gregorian_to_hijri(int* h_y, int* h_m, int* h_d, int g_y, int g_m, int g_d)
{
int year, month, day;
int zyr;
int zd;
int zm;
int zy;
float zjd;
int zl;
int zn;
int zj;
year = g_y;
month = g_m;
day = g_d;
zyr = year;
zd = day;
zm = month;
zy = zyr;
if((zy > 1582) || ((zy == 1582) && (zm > 10)) || ((zy == 1582) && …Run Code Online (Sandbox Code Playgroud)