如何计算两个时间段之间的会费数量?

时间:2016-06-03 02:57:36

标签: awk gawk

在这里,我写了一个脚本,用于计算两个日期之间的付款金额(mm / yyyy)。

通常会分期付款 每月(12次) 每季度(4次) 半年(2次) 每年(一次)

我正试图从截止日期到达#34;"至"到期日"。 我可以正确计算会费数但无法计算 到达截止日期"

例如:

如果截止日期是11/2012 付款是季度的 然后与2016/06相同,最新到期日为05/2016

应付的总费用是15

我必须在11/2012到05/2016之间显示会费

在这里,我很难到达最新的到期日,即05/2016

这是我的代码:

curm = date +%m;     CURY = date +%Y;

awk -v curmt="$curm" -v curyr="$cury" 'BEGIN{FS="#"}{

mode=$10+0
fupy=substr($12,4,4)
fupm=substr($12,1,2)+0
prem=$11
if(mode==12){frequency=1}
if(mode==6 ){frequency=2}
if(mode==3 ){frequency=4}
if(mode==1 ){frequency=12}

if(fupm>6){        # here we are calculating revival dues as at 06/2016
       months       = (6+12-fupm) * frequency
           years        = ( curyr- 1 ) - fupy
       instalments1 = (years * frequency)+1
           fupyto       = fupy+int(instalments1/frequency)

               if(months>12){
                instalments2=int(months/12)
                            fractionofmonths=(months-instalments2 * 12)/frequency
                }else{
                     fractionofmonths=months/frequency
                                     }
                                fupmto=fupm+instalments2
            }else{
                        months = (6-fupm) * frequency
                    if(months <12){
                            years           = curyr - fupy
                            instalments1    = (years * frequency) + 1
                                        instalments2    = 0
                            fractionofmonths= months/frequency
                    }else{  
                                                years            = curyr - fupy
                        instalments1     = (years * frequency)+1
                        instalments2     = int(months/12)
                                    fractionofmonths = (months-instalments2 * 12)/frequency
                    }
                                fupmto=fupm+instalments2
                                     }
totaldues=0
totaldues=instalments1+instalments2
instalments2=0
instalments1=0


fupto  = fupmto"/"fupyto

..
..
..
some more code
}'  

。 。 。 .. 还有一些代码

谢谢

0 个答案:

没有答案