LongBondIdto6Id
简述
得到银行间长债券代码转换为压缩后六位代码,与当前时间pn_date()相关。
1、如果BondID为6位或小于6位的代码,"BK"+BondID即为天软中的银行间债券代码,可直接通过"BK"+BondID 获取在天软的名称。返回6位代码Bondid和名称
2、如果BondID长度为7位,一般读取第1、2位为年份,第3、4位为发行债券的主体,最后三位为期数;其中年份、主体、期数放在返回的参数nf、zt、qs中,并返回以下几种压缩代码
1)BondId
2)年份2位+主体2位+期数2位;其中:用MType>360(type=1)方法处理期数
3)年份1位+主体2位+期数3位;其中:用函数GETDZB处理年份
4)‘BK’+BondId
3、如果BondID长度为8位,一般读取第1、2位为年份,第3、4位为发行债券的主体,最后三位为期数;其中年份、主体、期数放在返回的参数nf、zt、qs中,用MType>360(type=1)方法处理期数,并返回以下几种压缩代码
1)BondId
2)年份2位+主体2位+期数2位
3)‘BK’+BondId
4、如果BondID长度为9位,一般读取第1、2位为债券类别,第3、4位为发行年份,第5、6位为发行人,最后三位为债券编码;其中债券类别、发行年份、发行人、债券编码放在返回的参数lb、nf、zt、qs中,用函数GETDZB处理类别、年份,MType>360方法处理债券编码,并返回以下几种压缩代码
1)BondId
2)类别1位+年份2位+主体2位+期数2位;其中:MType>360方法type=1
3)类别1位+年份2位+主体2位+期数2位;其中:MType>360方法type=1;lb+9,如果函数GETDZB处理报错则返回BondId
4)类别1位+年份2位+主体2位+期数2位;其中:MType>360方法type=2;lb+9,如果函数GETDZB处理报错则压缩代码3)=4)
5)‘BK’+BondId
5、如果如果BondID长度小于6或者大于9则返回BondId
6、如果执行以上步骤报错则返回BondId
MType>360方法:
LongBondIdto6Id(BondId:String;lb:String;nf:String;zt:String;qs:String):Array;
名称 | 类型 | 说明 |
---|
BondId | String | 字符串,银行间长债券代码; |
lb | String | 字符串,返回值。债券类别 |
nf | String | 字符串,返回值。债券发行年份 |
zt | String | 字符串,返回值。债券发行主体 |
qs | String | 字符串,返回值。债券发行期数 |
返回 | Array | 数组 |
将R3转换为整型数据iR3
如果iR3<=359:
取R3的最左的两位Qs1,最右的一位Qs2,返回tDZB[Qs1]+ Qs2
如果Mtype=1 且iR3>=360:
iR3-360后对26取整、取余,再都加10转换位二位的十进制数sDiv、sMod。返回tDZB[sDiv]+tDZB[sMod]
如果Mtype=2,iR3>=360且iR3<=619:
取R3前两位再减26Qs1,取最后一位Qs2,返回Qs2+tDZB[Qs1]
函数GETDZB算法如下:
返回一维数组,如下(第一列为行标)
|
|
00 |
0 |
01 |
1 |
02 |
2 |
03 |
3 |
04 |
4 |
05 |
5 |
06 |
6 |
07 |
7 |
08 |
8 |
09 |
9 |
10 |
A |
11 |
B |
12 |
C |
13 |
D |
14 |
E |
15 |
F |
16 |
G |
17 |
H |
18 |
I |
19 |
J |
20 |
K |
21 |
L |
22 |
M |
23 |
N |
24 |
O |
25 |
P |
26 |
Q |
27 |
R |
28 |
S |
29 |
T |
30 |
U |
31 |
V |
32 |
W |
33 |
X |
34 |
Y |
35 |
Z |
Return LongBondIdto6Id("150204","","","","");
