2

是否有从 gregorian 传输日期(日、月、年)的 Matlab 代码

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

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

星期五,18 / 11 / 2011

回历日期是星期五 22 / 12 / 1432

谢谢

4

1 回答 1

2

如果您使用的是 Windows,则可以在 MATLAB 中使用.NET Framework

这是一个将公历日期转换为回历的函数(基于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
于 2012-06-10T20:45:02.953 回答