Convert Numbers to Arabic Text - C# (.Net)
كود تحويل الأرقام الى نصوص
بلغة C# (.Net)
Based on code on Page (http://layan.us/go/num2text/)
private string arabicNumber(double num)
{
string[] aname = { "واحد", "اثنان", "ثلاثة", "اربعة", "خمسة", "ستة", "سبعة", "ثمانية", "تسعة", "عشرة", "أحد عشر", "اثنا عشر" };
string[] aname10 = { "عشر", "عشرون", "ثلاثون", "اربعون", "خمسون", "ستون", "سبعون", "ثمانون", "تسعون" };
string[] aname100 = { "مئة", "مئتان", "ثلثمائة", "اربعمائة", "خمسمائة", "ستمائة", "سبعمائة", "ثمانمائة", "تسعمائة" };
string[] aname1000 = { "الف", "الفان" };
int num4 = Convert.ToInt32(Math.Floor((num) / 1000));
int num3 = Convert.ToInt32(Math.Floor((num - 1000 * num4) / 100));
int num2 = Convert.ToInt32(Math.Floor((num - 100 * num3) / 10));
int num1 = Convert.ToInt32(num - 10 * num2);
if (num4 == 0 && num > 999)
return aname1000[num4 - 1];
if (num4 > 2 && num4 < 11)
return aname[num4 - 1] + "
و
" + arabicNumber(num - 1000 * num4);
if (num4 > 2 && num4 > 10)
return arabicNumber(num4 - 1) + "
و
" + arabicNumber(num - 1000 * num4);
if (num4 < 3 && num > 1000)
return aname1000[num4 - 1] + "و" + arabicNumber(num - 1000 * num4);
if (num3 == 0 && num > 99)
return aname100[num3 - 1];
if (num3 != 0 && num > 100)
return aname100[num3 - 1] + "
و
" + arabicNumber(num - 100 * num3);
if (num > 12 && num < 20)
return aname[num1 - 1] + aname10[num2 - 1];
if (num > 20 && num % 10 != 0)
return aname[num1 - 1] + "
و
" + aname10[num2 - 1];
if (num < 13)
return aname[Convert.ToInt32(num) - 1];
if (num > 19 && num % 10 == 0)
return aname10[num2 - 1];
return num.ToString();
}
No comments:
Post a Comment