Convert Gregorian to Hijiri in D365


The date value retuned by umAlQuraCalendar is not in the range of AX / 365 TransDate allowed. TransDate support from 1/1/1900 to 1/1/2155. You might be noticed Never as dateMax() value in AX tables, All those never is nothing but 1/1/2155.

Please find following script to convert Gregorian to Hijri with date separator “-“.

I got an requirment to convert the date where Integrating system is not accepts 29-4-1442, API is looking for 29-04-1442

I added 0 before to the day and month if its less than 9.

Most of the functions available in umAlQura returns or accepts int32, please make sure you convert before you proceed with.

NOTE: Please dont try to covert the string what hijri returns to transDate, that results in error.

public static str 30 Gregorian2Hijri(TransDate _transDate)


System.Globalization.UmAlQuraCalendar umAlQuraCalendar = new System.Globalization.UmAlQuraCalendar();

System.Globalization.GregorianCalendar gregorianCalendar = new System.Globalization.GregorianCalendar();

str yearStr, monthStr, dayOfMonthStr;


yearStr = umAlQuraCalendar.GetYear(_transDate);

monthStr = umAlQuraCalendar.GetMonth(_transDate);

dayOfMonthStr = umAlQuraCalendar.GetDayOfMonth(_transDate);

if(strLen(monthStr) == 1)

monthStr = “0”+monthStr;

if(strLen(dayOfMonthStr) == 1)

dayOfMonthStr = “0”+dayOfMonthStr;

return strFmt(“%1-%2-%3”,dayOfMonthStr,monthStr,yearStr);



Share on email
Share on facebook
Share on twitter
Share on linkedin
Share on pinterest

Leave a Reply

Your email address will not be published.