(1)把EndT转化为整数d,GoalDate转化为整数GoalDate;
(2)若F=1,利用d的年份信息,GoalDate的月份和日信息组成新的日期d1,当d1>d时,交易日距下一次付息日的实际天数= d与d1相隔的天数+1;否则交易日距下一次付息日的实际天数=365-d与d1相隔的天数;
(3)若F≠1,获取d的年份信息y,GoalDate的月份信息m和天信息dof,继续以下步骤;
(4)当m>6时,m10 = m – 6,m20 = m;否则,m10 = m,m20 = m + 6;
(5)利用y,m10,dOf组成日期d1,y,m20,dOf组成日期d2,若d1≤d≤d2,交易日距下一次付息日的实际天数=d与d2之间相隔的天数+1;若d< d1,交易日距下一次付息日的实际天数=d与d1相隔的天数;若d>d2,交易日距下一次付息日的实际天数=365-( d2与d之间相隔的天数+ d1与d2之间相隔的天数)
//返回'BK000002'在2003年3月18日距下一次付息日的实际天数
SetSysParam(PN_Stock(),'BK000002'); //设置股票代码
GoalDate:=IntToDate(base(502026)); //到期日
EndT:=20030318T; //交易日
f:=base(502021); //付息频率
return BondCoupDaysNC(GoalDate,EndT,f);
//结果:32