#region ConvertRaghamToHorof /// /// عدد رادریافت وبه حروف تبدیل می کند /// /// رقم /// به حروف عدد را برمی گرداند public static string ConvertRaghamToHorof(Int64 Ragham) { return ConvertRaghamToHorof(ConvertRaghamToJodaJoda(Ragham)); } /// /// یک عدد به صورت سه رقم جدا را دریافت وبه حروف تبدیل می کند /// /// /// public static string ConvertRaghamToHorof(string Ragham) { string horof = ""; try { string[] AddJoda = Ragham.Split(','); for (int i = 0; i < AddJoda.Length; i++) { //MessageBox.Show(AddJoda[i]); string strh = pishConvertRaghamToHorof3(int.Parse(AddJoda[i]), AddJoda.Length - i); if (horof == "") { horof = horof + strh; } else { if (strh != "") horof = horof + " و " + strh; } } return horof; } catch (Exception e1) { return "error"; } finally { } } /// /// اعداد از صفر تا 19 را به حروف تبدیل میکند /// /// عدد بین 0 تا 19 /// حروف را برمی گرداند در صورت خطا -1 و درصورت عدد نامعتبر تهی برمی گرداند private static string ConvertRaghamToHorof0to19(int Ragham) { try { //اعداد صفر تا بیست if (Ragham > 19) return ""; switch (Ragham) { case 0: return "صفر "; case 1: return "یک "; case 2: return "دو"; case 3: return "سه "; case 4: return "چهار"; case 5: return "پنج "; case 6: return "شش "; case 7: return "هفت "; case 8: return "هشت "; case 9: return "نه "; case 10: return "ده "; case 11: return "یازده "; case 12: return "دوازده "; case 13: return "سیزده "; case 14: return "چهارده "; case 15: return "پانزده "; case 16: return "شانزده "; case 17: return "هیفده "; case 18: return "هیجده "; case 19: return "نوزده "; //case 20: // return "بیست"; } return ""; } catch (Exception e) { return "-1"; } finally { } } /// /// اعداد از بیست تا نود نه را به حروف تبدیل میکند /// /// عدد بین 20 تا 99 /// حروف را برمی گرداند در صورت خطا -1 و درصورت عدد نامعتبر تهی برمی گرداند private static string ConvertRaghamToHorof20to99(int Ragham) { try { //اعداد صفر تا بیست if (!(Ragham > 19 && Ragham < 100)) return ""; // برای تبدیل به حروف رقم دوم string str = ConvertRaghamToHorof0to19(int.Parse(Ragham.ToString().Substring(1))); if (Ragham > 19 && Ragham < 30) { if (Ragham == 20) { return "بیست"; } else { return "بیست و " + str; } } else if (Ragham > 29 && Ragham < 40) { if (Ragham == 30) { return "سی"; } else { //string str = ConvertRaghamToHorof0to20(Ragham.ToString().Substring(1)); return "سی و " + str; } } else if (Ragham > 39 && Ragham < 50) { if (Ragham == 40) { return "چهل"; } else { //string str = ConvertRaghamToHorof0to20(Ragham.ToString().Substring(1)); return "چهل و " + str; } } else if (Ragham > 49 && Ragham < 60) { if (Ragham == 50) { return "پنجاه"; } else { //string str = ConvertRaghamToHorof0to20(Ragham.ToString().Substring(1)); return "پنجاه و " + str; } } else if (Ragham > 59 && Ragham < 70) { if (Ragham == 60) { return "شصت"; } else { //string str = ConvertRaghamToHorof0to20(Ragham.ToString().Substring(1)); return "شصت و " + str; } } else if (Ragham > 69 && Ragham < 80) { if (Ragham == 70) { return "هفتاد"; } else { //string str = ConvertRaghamToHorof0to20(Ragham.ToString().Substring(1)); return "هفتاد و " + str; } } else if (Ragham > 79 && Ragham < 90) { if (Ragham == 80) { return "هشتاد"; } else { //string str = ConvertRaghamToHorof0to20(Ragham.ToString().Substring(1)); return "هشتاد و " + str; } } else if (Ragham > 89 && Ragham < 100) { if (Ragham == 90) { return "نود"; } else { //string str = ConvertRaghamToHorof0to20(Ragham.ToString().Substring(1)); return "نود و " + str; } } return ""; } catch (Exception e) { return "-1"; } finally { } } /// /// اعداد از 0 تا نود نه را به حروف تبدیل میکند /// /// عدد بین 0 تا 99 /// حروف را برمی گرداند در صورت خطا -1 و درصورت عدد نامعتبر تهی برمی گرداند private static string ConvertRaghamToHorof0to99(int Ragham) { try { if (Ragham > 99) return ""; if (Ragham < 20) { return ConvertRaghamToHorof0to19(Ragham); } else if (Ragham < 100) { return ConvertRaghamToHorof20to99(Ragham); } return ""; } catch (Exception e) { return ""; } finally { } } /// /// اعداد از صد تانهصدو نودو نه را به حروف تبدیل میکند /// /// عدد بین 100 تا 999 /// حروف را برمی گرداند در صورت خطا -1 و درصورت عدد نامعتبر تهی برمی گرداند private static string ConvertRaghamToHorof100to999(int Ragham) { try { //اعداد 100 تا 999 if (!(Ragham > 99 && Ragham < 1000)) return ""; // برای تبدیل به حروف رقم دوم string str = ConvertRaghamToHorof0to99(int.Parse(Ragham.ToString().Substring(1))); if (Ragham > 99 && Ragham < 200) { if (Ragham == 100) { return "صد"; } else { return "صد و " + str; } } else if (Ragham > 199 && Ragham < 300) { if (Ragham == 200) { return "دویست"; } else { //string str = ConvertRaghamToHorof0to20(Ragham.ToString().Substring(1)); return "دویست و " + str; } } else if (Ragham > 299 && Ragham < 400) { if (Ragham == 300) { return "سیصد"; } else { //string str = ConvertRaghamToHorof0to20(Ragham.ToString().Substring(1)); return "سیصد و " + str; } } else if (Ragham > 399 && Ragham < 500) { if (Ragham == 400) { return "چهارصد"; } else { //string str = ConvertRaghamToHorof0to20(Ragham.ToString().Substring(1)); return "چهارصد و " + str; } } else if (Ragham > 499 && Ragham < 600) { if (Ragham == 500) { return "پانصد"; } else { //string str = ConvertRaghamToHorof0to20(Ragham.ToString().Substring(1)); return "پانصد و " + str; } } else if (Ragham > 599 && Ragham < 700) { if (Ragham == 600) { return "شش صد"; } else { //string str = ConvertRaghamToHorof0to20(Ragham.ToString().Substring(1)); return "شش صد و " + str; } } else if (Ragham > 699 && Ragham < 800) { if (Ragham == 700) { return "هفت صد"; } else { //string str = ConvertRaghamToHorof0to20(Ragham.ToString().Substring(1)); return "هفت صد و " + str; } } else if (Ragham > 799 && Ragham < 900) { if (Ragham == 800) { return "هشت صد "; } else { //string str = ConvertRaghamToHorof0to20(Ragham.ToString().Substring(1)); return "هشت صد و " + str; } } else if (Ragham > 899 && Ragham < 1000) { if (Ragham == 900) { return "نه صد"; } else { //string str = ConvertRaghamToHorof0to20(Ragham.ToString().Substring(1)); return "نه صد و " + str; } } return ""; } catch (Exception e) { return "-1"; } finally { } } /// /// اعداد از صفر تا 999 را به حروف تبدیل می کند /// /// /// private static string ConvertRaghamToHorof0to999(int Ragham) { try { if (!(Ragham < 1000)) return ""; if (Ragham < 20) { return ConvertRaghamToHorof0to19(Ragham); } else if (Ragham > 19 && Ragham < 100) { return ConvertRaghamToHorof20to99(Ragham); } else if (Ragham > 99 && Ragham < 1000) { return ConvertRaghamToHorof100to999(Ragham); } else { return "خطا برنامه نویسی"; } return ""; } catch (Exception e) { return "-1"; } finally { } } /// /// یک عدد سه رقمی و موقعیت انرا دریافت و به حروف تبدیل می کند /// /// عدد سه رقمی /// موقیت عدد 2 =هزار 3== میلیون 4= میلیارد /// private static string pishConvertRaghamToHorof3(int Ragham, int LocationRagham) { try { //اگر عدد صفر نیازبه پیش ندارد if (Ragham == 0) return ""; if (Ragham > 1000) return ""; //string str = ConvertRaghamToHorof0to999(Ragham); if (Ragham == 0) return ""; switch (LocationRagham) { case 1: return ConvertRaghamToHorof0to999(Ragham); case 2: return ConvertRaghamToHorof0to999(Ragham) + " هزار "; case 3: return ConvertRaghamToHorof0to999(Ragham) + " میلیون "; case 4: return ConvertRaghamToHorof0to999(Ragham) + " میلیارد "; case 5: return ConvertRaghamToHorof0to999(Ragham) + " تریلیارد "; case 6: return ConvertRaghamToHorof0to999(Ragham) + " ??? "; case 7: return ConvertRaghamToHorof0to999(Ragham) + " ??? "; case 8: return ConvertRaghamToHorof0to999(Ragham) + " ??? "; case 9: return ConvertRaghamToHorof0to999(Ragham) + " ??? "; } return ""; } catch (Exception e) { return "error"; } finally { } } /// /// یک رقم را سه رقم سه رقم جدا می کند /// /// رقم که باید حداکثر دوازده رقم باشد /// جداشده سه رقم سه رقم را برمی گرداند public static string ConvertRaghamToJodaJoda(Int64 Ragham) { try { string Add = Ragham.ToString(); Add = Add.Trim(); //فقط دوازده رقم را پشتیبانی می کند if (Add.Length > 15) Add = Add.Substring(0, 15); if (Add.Trim() == "") { return ""; } string j = ""; if ((Add.Length > 3 && Add.Length < 6) || Add.Length == 6) { //MessageBox.Show(i.Substring(3, 1)); Add = Add.Substring(0, Add.Length - 3) + "," + Add.Substring(Add.Length - 3, 3); } else if ((Add.Length > 6 && Add.Length < 9) || Add.Length == 9) { Add = Add.Substring(0, Add.Length - 6) + "," + Add.Substring(Add.Length - 6, 3) + "," + Add.Substring(Add.Length - 3, 3); } else if ((Add.Length > 9 && Add.Length < 12) || Add.Length == 12) { //MessageBox.Show(i.Substring(3, 1)); Add = Add.Substring(0, Add.Length - 9) + "," + Add.Substring(Add.Length - 9, 3) + "," + Add.Substring(Add.Length - 6, 3) + "," + Add.Substring(Add.Length - 3, 3); //Add = Add.Substring(0, 3) + // "," + Add.Substring(3, 3) + // "," + Add.Substring(6, 3) + // "," + Add.Substring(9, Add.Length - 9); } else if (Add.Length > 12 && Add.Length < 15) { //MessageBox.Show(i.Substring(3, 1)); Add = Add.Substring(0, 3) + "," + Add.Substring(3, 3) + "," + Add.Substring(6, 3) + "," + Add.Substring(9, 3) + "," + Add.Substring(12, Add.Length - 12); } else if (Add.Length < 3) { } return Add; } catch (Exception e) { //ClsGlobalClass.ShowMessageErrorFarsi(e, "ConvertRaghamToJodaJoda(Int64 Ragham)"); return ""; } finally { //ObjBankPatern.SqlConnection.Close(); //cmd.Dispose(); //dap.Dispose(); } } public static Boolean IsNumeric (System.Object Expression) { if(Expression == null || Expression is DateTime) return false; if(Expression is Int16 || Expression is Int32 || Expression is Int64 || Expression is Decimal || Expression is Single || Expression is Double || Expression is Boolean) return true; try { if(Expression is string) Double.Parse(Expression as string); else Double.Parse(Expression.ToString()); return true; } catch {} // just dismiss errors but return false return false; } } #endregion ConvertRaghamToHorof