Ðề: Ngày đến hạn tính như thế nào?
Access không có sẵn các hàm tài chánh như trong Excel.
Do đó ta phải tính toán, cộng trừ theo ý nghĩa mà ta muốn, dựa trên số ngày thực tế của các hàm về ngày tháng của Access.
Phải căn cứ hợp đồng thực tế thôi.
Ví dụ: Hợp đồng ghi là tiền gửi tiết kiệm LS 18%/năm, nếu rút trước hạn thì được tính theo LS không kỳ hạn là 1%/tháng.
Khi đó ta phải kiểm tra: phần chẵn năm (DateDiff("yyyy",date1,date2)) thì tính theo 18%/năm, phần lẽ ngày thì tính theo LS 1%/tháng...
Phải tính từ đoạn theo đúng ý nghĩa của hợp đồng.
Do đó đòi hỏi người viết chương trình phải có kiến thức về kinh tế tài chánh.
Ngày 01/01/2008, em gửi tiết kiệm vào Ngân hàng ACB 100.000.000 đ (Một trăm triệu đồng chẵn./.), thời hạn là 3 tháng, lãi suất là 1,00%/tháng.
Câu hỏi của em là: Các anh, chị giúp em làm thế nào để em biết được Ngày đến hạn, tính lãi suất khi em gửi được 25 ngày (khi đó dùng lãi suất 0,30%/tháng), tính lãi suất khi được 90 ngày (tức là tròn 3 tháng).
Như trên thì tiền gửi phải đủ 3 tháng (không phải là 90 ngày) thì tính LS 3%/3tháng.
Nếu chưa đủ 3 tháng thì tính LS 0,3%/tháng = 0,01%/ngày.
Chú ý là: có vài NH tính LS danh nghĩa 0,01%/ngày nhưng cũng có vài NH tính theo 0,3%/(số ngày cụ thể của từng tháng).
Giả sử ở đây tính theo danh nghĩa 0,01%/ngày thì:
Phần tiền lãi cho số chẵn quý: t1 = tiengui * datediff("q", ngaygui, ngayrut) * 3%
Ngày bắt đầu được tính lãi theo 0,01%/ ngày là cái ngày mà chấm dứt tính lãi 3% ở trên.
Ngày đó là: d_chanquy = dateADD("q", datediff("q", ngaygui, ngayrut) , ngaygui)
OK. Ở trên đơn giản là cộng thêm số quý vào ngày_gửi.
Như vậy số ngày lẻ ra sẽ là: m_thua = datediff("d", d_chanquy, ngayrut)
Và số lãi tính riêng cho các ngày lẻ là: t2 = tiengui * m_thua * 0,01%
Nếu muốn gom lại thành 1 dòng để tính luôn ra số tiền lãi phải trả thì ta thế vào các công thức trên thôi:
lai = tiengui * ((datediff("q", ngaygui, ngayrut) * 3%) + ( datediff("d", dateADD("q", datediff("q", ngaygui, ngayrut) , ngaygui), ngayrut) * 0,01%))