Код Matlab для перевода между календарями григорианско-хиджры - PullRequest
2 голосов
/ 17 ноября 2011

Есть ли код Matlab, который переводит дату (день, месяц, год) с григорианского

в хиджри (исламский) календарь, а также из хиджры в григорианский календарь,

Давайте предположим, что мы хотим изменить григорианскую дату:

Пятница, 18.11.2011

к дате хиджры, которая является пятницей 22/12/1432

Спасибо

1 Ответ

2 голосов
/ 11 июня 2012

Если вы работаете в Windows, вы можете использовать .NET Framework изнутри 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
...