public static decimal?GetAmortMonth(DateTime?Amort_Start_Date, DateTime?Amort_End_Date) { DateTime _StartDate = Amort_Start_Date.Value; DateTime _EndDate = Amort_End_Date.Value; if (_StartDate.Date >= _EndDate.Date) { return(0); } decimal dayStart = _StartDate.AddMonths(1).AddDays(-(_StartDate.Day)).Day; decimal dayEnd = _EndDate.AddMonths(1).AddDays(-(_EndDate.Day)).Day; decimal?_amortMonth = (dayStart - _StartDate.Day + 1) / dayStart + MyStaticClass.DateDiff(_StartDate, _EndDate) + (_EndDate.Day / dayEnd); return(Math.Round(_amortMonth.Value, 2)); }
//2. Hàm đọc số thành chữ (Sử dụng hàm đọc số có ba chữ số) public static String DocTienBangChu(Double SoTien) { int lan = 0; int i = 0; Double so = 0; String KetQua = ""; String tmp = ""; var ViTri = new List <Double>() { 0, 0, 0, 0, 0, 0, 0 }; if (SoTien < 0) { return("Số tiền âm"); } if (SoTien == 0) { return("Không đồng"); } if (SoTien > 0) { so = SoTien; } else { so = -SoTien; } if (SoTien > 8999999999999999) { //SoTien = 0; return("Số quá lớn!"); } ViTri[5] = Math.Floor(so / 1000000000000000); so -= ViTri[5] * 1000000000000000; ViTri[4] = Math.Floor(so / 1000000000000); so -= ViTri[4] * 1000000000000; ViTri[3] = Math.Floor(so / 1000000000); so -= ViTri[3] * 1000000000; ViTri[2] = so / 1000000; ViTri[1] = (so % 1000000) / 1000; ViTri[0] = so % 1000; if (ViTri[5] > 1) { lan = 5; } else if (ViTri[4] > 1) { lan = 4; } else if (ViTri[3] > 1) { lan = 3; } else if (ViTri[2] > 1) { lan = 2; } else if (ViTri[1] > 1) { lan = 1; } else { lan = 0; } for (i = lan; i >= 0; i--) { tmp = MyStaticClass.DocSo3ChuSo((int)ViTri[i]); KetQua += tmp; if (ViTri[i] > 0) { KetQua += Tien[i]; } if ((i > 0) && (tmp.Length > 0)) { KetQua += " "; //&& (!string.IsNullOrEmpty(tmp)) } } if (KetQua.Substring(KetQua.Length - 1) == " ") { KetQua = KetQua.Substring(0, KetQua.Length - 1); } KetQua = KetQua.Substring(1, 1).ToUpper() + KetQua.Substring(2); return(KetQua);//.substring(0, 1);//.toUpperCase();// + KetQua.substring(1); }