在公历回历日历之间传输的 Matlab 代码

发布于 2024-12-16 10:58:24 字数 161 浏览 2 评论 0原文

是否有一个Matlab代码可以将日期(日,月,年)从公历转移

到回历(伊斯兰)日历,也从回历转移到公历,

假设我们要更改公历日期:

星期五,18 / 11 / 2011

回历日期,即 1432 年 12 月 22 日星期五

谢谢

Is there a Matlab code that transfer the date ( day,month,year) from gregorian

to Hijri (Islamic) calendar and also from hijri to gregorian calendar,

Let's assume that we want to change the gregorian date:

Friday, 18 / 11 / 2011

to the Hijri date which is Friday 22 / 12 / 1432

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一梦浮鱼 2024-12-23 10:58:24

如果您使用的是 Windows,则可以使用 .NET MATLAB 内部的框架

这是一个将公历日期转换为回历(基于CodeProject):

function out = GregToHijri(str, frmtIn, frmtOut)
    % English (US) and Arabic (Saudi Arabia) cultures
    enCult = System.Globalization.CultureInfo('en-US',false);
    enCult.DateTimeFormat.Calendar = System.Globalization.GregorianCalendar();
    arCult = System.Globalization.CultureInfo('ar-SA',false);
    arCult.DateTimeFormat.Calendar = System.Globalization.HijriCalendar();

    % parse using supplied input format
    dt = System.DateTime.ParseExact(str, frmtIn, enCult.DateTimeFormat);

    % convert datetime as formatted string
    out = char( dt.ToString(frmtOut, arCult.DateTimeFormat) );
end

在您的输入:

>> GregToHijri('Friday, 18/11/2011', 'dddd, dd/MM/yyyy', 'dd/MM/yyyy')
ans =
22/12/1432

If you are on Windows, you could use the .NET Framework from inside MATLAB.

Here is a function to convert Gregorian dates to Hijri (based on an article on CodeProject):

function out = GregToHijri(str, frmtIn, frmtOut)
    % English (US) and Arabic (Saudi Arabia) cultures
    enCult = System.Globalization.CultureInfo('en-US',false);
    enCult.DateTimeFormat.Calendar = System.Globalization.GregorianCalendar();
    arCult = System.Globalization.CultureInfo('ar-SA',false);
    arCult.DateTimeFormat.Calendar = System.Globalization.HijriCalendar();

    % parse using supplied input format
    dt = System.DateTime.ParseExact(str, frmtIn, enCult.DateTimeFormat);

    % convert datetime as formatted string
    out = char( dt.ToString(frmtOut, arCult.DateTimeFormat) );
end

Tested on your input:

>> GregToHijri('Friday, 18/11/2011', 'dddd, dd/MM/yyyy', 'dd/MM/yyyy')
ans =
22/12/1432
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文