Exemplo n.º 1
0
        private string MoneyToString(decimal Amount)
        {
            string Resp, Tien, DOC, Dem, Nhom, Chu, So1, So2, So3, Dich;
            int    S;

            if (Amount == 0)
            {
                Resp = "Không đồng";
            }
            else
            {
                if (Amount > 999999999999)
                {
                    Resp = "Số quá lớn";
                }
                else
                {
                    if (Amount < 0)
                    {
                        Resp = "Trừ";
                    }
                    else
                    {
                        Resp = string.Empty;
                    }
                    Tien = string.Format("{0:###########0.00}", decimal.Parse(Amount.ToString()));
                    Tien = (Tien.PadLeft(15));
                    DOC  = Dem = string.Empty;
                    DOC  = DOC + "trăm  mươi  tỷ    ";
                    DOC  = DOC + "trăm  mươi  triệu ";
                    DOC  = DOC + "trăm  mươi  ngàn  ";
                    DOC  = DOC + "trăm  mươi  đồng  ";
                    DOC  = DOC + "trăm  mươi  xu    ";
                    Dem  = Dem + "một  hai  ba   bốn  năm  ";
                    Dem  = Dem + "sáu  bảy  tám  chín";


                    for (int i = 1; i < 6; i++)
                    {
                        Nhom = Tien.Substring(i * 3 - 3, 3);
                        if (Nhom != "".PadRight(3))
                        {
                            switch (Nhom)
                            {
                            case "000":
                                Chu = (i == 4 ? "đồng " : "");
                                break;

                            case ".00":
                                Chu = "chẵn";
                                break;

                            default:
                                So1 = Nhom.Substring(0, 1);
                                So2 = Nhom.Substring(1, 1);
                                So3 = Nhom.Substring(Nhom.Length > 1 ? Nhom.Length - 1 : 0, 1);
                                Chu = "";
                                for (int j = 1; j < 4; j++)
                                {
                                    Dich = "";
                                    if (int.TryParse(Nhom.Substring(j - 1, 1), out S) == false)
                                    {
                                        S = -1;
                                    }
                                    if (S > 0)
                                    {
                                        Dich  = Dem.Substring(S * 5 - 5, 4).Trim() + " ";
                                        Dich += DOC.Substring((i - 1) * 18 + j * 6 - 5 - 1, 5) + " ";
                                    }
                                    switch (j)
                                    {
                                    case 2:
                                        if (S == 1)
                                        {
                                            Dich = "mười ";
                                        }
                                        else if (S == 0 && So3 != "0")
                                        {
                                            if ((int.Parse(So1) >= 1 && int.Parse(So1) <= 9) ||
                                                (So1 == "0" && i == 4))
                                            {
                                                Dich = "lẻ ";
                                            }
                                        }
                                        break;

                                    case 3:
                                        if (S == 0 && Nhom != "".PadRight(2) + "0")
                                        {
                                            Dich = DOC.Substring((i - 1) * 18 + j * 6 - 5 - 1, 5).Trim() + "".PadRight(1);
                                        }
                                        else if (S == 5 && So2 != "".PadRight(1) && So2 != "0")
                                        {
                                            Dich = "l" + Dich.Substring(1);
                                        }
                                        break;

                                    default:
                                        break;
                                    }
                                    Chu += Dich;
                                }
                                break;
                            }
                            Chu   = Chu.Replace("  ", " ");
                            Resp += Chu.Replace("mươi một", "mươi mốt");
                        }
                    }
                }
            }
            return(Resp.Substring(0, 1).ToUpper() + Resp.Substring(1) + "./.");
        }
        public static string txtVND(Decimal BaoNhieu)
        {
            string KetQua = "", SoTien, Nhom, Chu, Dich, S1, S2, S3;
            int    S;
            int    I, J, Vitri;

            if (BaoNhieu == 0)
            {
                KetQua = "Không đồng";
            }
            else
            {
                SoTien = Math.Abs(BaoNhieu).ToString("##############0.00");
                SoTien = "               " + SoTien;
                SoTien = SoTien.Substring(SoTien.Length - 18, 18);
                string[] Hang;
                Hang = new string[] { "None", "trăm", "mươi", "gì đó" };
                string[] Doc;
                Doc = new string[] { "None", "ngàn tỷ", "tỷ", "triệu", "ngàn", "đồng" };
                string[] Dem;
                Dem = new string[] { "None", "một", "hai", "ba", "bốn", "năm", "sáu", "bẩy", "tám", "chín" };

                for (I = 1; I <= 5; I++)
                {
                    Nhom = SoTien.Substring(I * 3 - 3, 3);
                    if (Nhom != "   ")
                    {
                        switch (Nhom)
                        {
                        case "000":
                        {
                            if (I == 5)
                            {
                                Chu = "đồng" + " ";
                            }
                            else
                            {
                                Chu = "";
                            }
                            break;
                        }

                        case ".00":
                        {
                            Chu = "chẵn";
                            break;
                        }

                        default:
                        {
                            S1      = Nhom.Substring(0, 1);
                            S2      = Nhom.Substring(1, 1);
                            S3      = Nhom.Substring(Nhom.Length - 1, 1);
                            Chu     = "";
                            Hang[3] = Doc[I];
                            for (J = 1; J <= 3; J++)
                            {
                                Dich = "";
                                try
                                {
                                    S = Convert.ToInt32(Nhom.Substring(J - 1, 1));
                                    if (S > 0)
                                    {
                                        Dich = Dem[S] + " " + Hang[J] + " ";
                                    }
                                    switch (J)
                                    {
                                    case 2:
                                    {
                                        if (S == 1)
                                        {
                                            Dich = "mười" + " ";
                                        }
                                        if ((S == 0) && (S3 != "0"))
                                        {
                                            if ((Convert.ToInt32(S1) >= 1 && Convert.ToInt32(S1) <= 9) || (S1 == "0" && I == 4))
                                            {
                                                Dich = "lẻ" + " ";
                                            }
                                        }
                                        break;
                                    }

                                    case 3:
                                    {
                                        if ((S == 0) && (Nhom != " " + "0"))
                                        {
                                            Dich = Hang[J] + " ";
                                        }

                                        if ((S == 5) && (S2 != "") && (S2 != "0"))
                                        {
                                            Dich = "l" + Dich.Substring(1);
                                        }
                                        break;
                                    }
                                    }
                                    Chu = Chu + Dich;
                                }
                                catch (Exception)
                                {
                                }
                            }

                            break;
                        }
                        }
                        //Vitri = Chu.IndexOf("mươi một", 1);
                        KetQua = KetQua + Chu;
                        string d = KetQua[0].ToString().ToUpper();

                        string d1 = KetQua.Remove(0, 1);
                        string k  = d1.Insert(0, d);
                        KetQua = k;
                    }
                }
            }
            return(KetQua);
        }