VBA 2000年之后活期存款利息计算
本例为工作中特殊需要,非银行给付利息方式:
Private Function CDI_Rate1000(ByVal Year As Integer) As Long
'{1,2,7,8,11,12},{99,72,81,36,50,35}
Dim Rate As Single
Select Case (Year - 2000)Case Is < 0:Rate = 0Case 0 To 1:Rate = 0.99Case 2 To 6:Rate = 0.72Case 7:Rate = 0.81Case 8 To 10:Rate = 0.36Case 11:Rate = 0.5Case Is >= 12Rate = 0.35
End Select
CDI_Rate1000 = Rate * 1000
End FunctionPrivate Function TDI_Rate1000(ByVal Year As Integer) As Long
'{1,3,5,7,8,9,10,11,12,13,15,16}
'{2.25,1.98,2.25,2.52,4.14,2.52,2.25,2.5,3.5,3,2.75,1.5}
Dim Rate As Single
Select Case (Year - 2000)Case Is < 0:Rate = 0Case 0 To 2:Rate = 2.25Case 3 To 4:Rate = 1.98Case 5 To 6:Rate = 2.25Case 7:Rate = 2.52Case 8:Rate = 4.14Case 9:Rate = 2.52Case 10:Rate = 2.25Case 11:Rate = 2.5Case 12:Rate = 3.5Case 13 To 14:Rate = 3.2Case 15:Rate = 2.75Case Is >= 16Rate = 1.5
End Select
TDI_Rate1000 = Rate * 1000
End FunctionPrivate Function DaysR(ByVal ymd As Date) As Integer '某一天到该年底的天数(含此日)DaysR = DateSerial(Year(ymd), 12, 31) - ymd + 1
End FunctionPrivate Function DaysL(ByVal ymd As Date) As Integer '一年中某日之前的天数(不含此日)DaysL = ymd - DateSerial(Year(ymd), 1, 1)
End FunctionPrivate Function Leap(ByVal Y As Integer) As BooleanLeap = (Y Mod 4 = 0 And Y Mod 100 <> 0) Or (Y Mod 400 = 0)
End FunctionPrivate Function VtoD(ByVal vDate As Variant) As Variant
Dim Y, M, D As Integer
VtoD = True
Select Case VarType(vDate)Case 0 To 2, Is = 6, Is > 8VtoD = FalseCase 3 To 5VtoD = VtoD(CStr(vDate))Case 7:VtoD = Format(vDate, "yyyy-mm-dd")If VtoD < "2000-01-01" Then VtoD = FalseCase 8:If Len(vDate) <> 8 ThenVtoD = FalseExit FunctionEnd IfFor i = 1 To 8If Asc(Mid(vDate, i, 1)) < 48 Or Asc(Mid(vDate, i, 1)) > 57 ThenVtoD = FalseExit FunctionEnd IfNextY = --Left(vDate, 4): M = --Mid(vDate, 5, 2): D = --Right(vDate, 2)If Y < 2000 Then VtoD = FalseIf M > 12 Or M = 0 Then VtoD = FalseIf D > 31 Or D = 0 Then VtoD = FalseIf M = 2 And D > (28 + IIf(Leap(Y), 1, 0)) Then VtoD = FalseIf VtoD = False Then Exit FunctionVtoD = Format(DateSerial(Y, M, D), "yyyy-mm-dd")
End Select
End FunctionPrivate Function CDInterest(ByVal Amounts As Double, ByVal vDate As Variant, Optional R As Boolean = False) As Double
Dim dRate As Double
vDate = VtoD(vDate)
CDInterest = 0
If vDate = False ThenMsgBox "日期格式错!"Exit Function
End If
If R ThenCDInterest = Round(Amounts, 2) * CDI_Rate1000(Year(vDate)) / 1000 / 100 / 365 * DaysR(vDate)
ElseCDInterest = Round(Amounts, 2) * CDI_Rate1000(Year(vDate)) / 1000 / 100 / 365 * DaysL(vDate)
End If
End Function
VBA 2000年之后活期存款利息计算相关推荐
- 活期存款利息的计算方法
因为活期存款的利息很低,所以,人们对活期存款的利息怎样计算,并不是十分在意.我也如是.可是前些日子我陪一位老同事去买国债,在回家的路上我们偶尔谈到了这个问题,有些问题我也不太明白.但是,我还是想把这个 ...
- C语言实现存款利息计算
存款利息的计算,有1000元,想存五年,可以按以下5种办法存: 一次存5年期 先存2年期,到期后将本息再存3年 先存3年期,到期后将本息再存2年 存1年期,到期后将本息存再存1年期,连续存5次 存活期 ...
- 学习笔记存款利息计算
/*习题存款利息的计算.有1000元,想存5年,可按以下5种办法存: (1)一次存5年期. (2)先存2年期,到期后将本息再存3年期. (3)先存3年期,到期后将本息再存2年期. (4)存1年期,到期 ...
- Tushare积分不够2000利用日线行情数据计算涨跌停价格
Tushare积分不够2000利用日线行情数据计算涨跌停数据 股票的涨跌幅规则 计算逻辑 代码 股票的涨跌幅规则 众所周知A股股票的涨跌幅是有限制的.目前创业板和科创板的涨跌幅涨跌幅限制比例为20%, ...
- 存款利息计算。有1000元,想存5年,可按以下5种办法存:
<C程序设计(第五版)>,谭浩强 著.第三章第2题. 代码如下: #include<stdio.h> #include<math.h> int main() {fl ...
- 在Excel中通过VBA实现不定区域的标准差计算
需求:在excel中计算固定区域的均值有很多实现方式,但是对于跟随一定条件变化的区域,要求解标准差却很难实现. 解决方案:通过VBA的程序,根据条件改变选定的单元格区域,实现不定区域的标准差计算. 程 ...
- c语言 存款利息计算,1000元,存5年,求五种方案存款五年后的本息和
存款利息的计算.有1000元,存5年,有以下五种方案: (1)一次存5年期,利率r5 = 0.0585 (2)先存2年,到期后将本息再存3 年,利率r2 = 0.0468,r3 = 0.054 (3) ...
- Excel VBA系列:实现奖金比例计算+4种公式法
作业要求:根据奖金规则,计算每位员工的奖励比例及销售奖金 奖金规则: 第一类方法:Excel公式法 方法1:=HLOOKUP(C3,'练习6-奖金规则'!$C$3:$F$4,2,TRUE) 方法2:= ...
- 【原创】VBA(实验5)VBA写干支纪年简单版: 计算阳历年的阴历年份
什么是天干地支 https://zhidao.baidu.com/question/440519452.html 方法1:1个特直接特别笨的办法:先写序列再& 直接把天干地支都写成60个循环. ...
最新文章
- 工程师必读 微软如何部署Exchange2010
- 整理第十六届全国大学智能车竞赛比赛数据
- Objective-C 内存管理retain和release
- Mongodb源码分析--Replication之主从模式--Master
- XAMPP——Apache不能启动解决方案
- 成为一个合格的as3程序猿
- ReviewForJob——深度优先搜索的应用
- C# 派生类的构造函数
- Logistic Regression逻辑回归的损失函数与梯度下降训练
- HUT-XXXX The window of the dazzling 模拟
- css鼠标滑过变大,css 鼠标移上去会变大(示例代码)
- 安全合规/法案--35--《APP收集使用个人信息自评估指南(征求意见稿)》原文及解读
- SPSS——相关分析——Pearson简单相关系数
- 博客群建软件-关键词要如何优化才能有好的排名
- npm init vite@latest 报错
- oracle14047,Oracle数据库之ORA-14047
- 数学建模常用算法—熵权法(EWM)
- webservice概述及cxf在Java开发中应用(三) cxf客户端开发
- python读取配置文件 分段_python分割文件的常用方法
- python递归必须要有_Python的递归