搜索
查看: 2926|回复: 1

[算法] 租赁租期计算

[复制链接]

75

主题

849

帖子

5009

积分

六级会员

The only one

Rank: 9Rank: 9Rank: 9

积分
5009
发表于 2015-1-21 11:06:57 | 显示全部楼层 |阅读模式
以下代码实现以下功能
计算租期时,根据出租时间的先后退租,分别计算租期,
结算时未正常退租的部分认为丢失,丢失部分的租期截止日期为结算日期

import console;
var leaseTm1=time("2015-01-10","%Y-%m-%d");
var leaseTm2=time("2015-01-10","%Y-%m-%d");
var leaseTm3=time("2015-01-12","%Y-%m-%d");
var leaseTm4=time("2015-01-15","%Y-%m-%d");

var reclaimTm1=time("2015-01-20","%Y-%m-%d");
var reclaimTm2=time("2015-01-22","%Y-%m-%d");
var reclaimTm3=time("2015-01-24","%Y-%m-%d");
var reclaimTm4=time("2015-01-27","%Y-%m-%d");
var reclaimTm5=time("2015-01-28","%Y-%m-%d");
var reclaimTm6=time("2015-01-29","%Y-%m-%d");

//出租情况
var leaseTab={  
    [
"钢管架6m"]={
        {   tm=leaseTm1;number=120;}
        {   tm=leaseTm4;number=80;}
    }
    [
"钢管架3m"]={
        {   tm=leaseTm2;number=50;}
    }
    [
"钢管架1.5m"]={
        {   tm=leaseTm3;number=20;}
    }
}

//退租情况
var reclaimTab={
    [
"钢管架6m"]={
        {   tm=reclaimTm2;number=40;}
        {   tm=reclaimTm6;number=60;}
    }
    [
"钢管架3m"]={
        {   tm=reclaimTm1;number=20;}
        {   tm=reclaimTm3;number=20;}
        {   tm=reclaimTm5;number=10;}
    }
    [
"钢管架1.5m"]={
        {   tm=reclaimTm4;number=10;}
    }   
}

//结算
var settlement=function(leaseTab,reclaimTab,settlementDate){
   
var resultTab={};
   
for(txtType,infoTab in reclaimTab){
        
for(i=1;#infoTab;1){
            
            
//退租数量
            var reclaimNumber=infoTab[ i ]["number"]
            
for(j=1;#leaseTab[txtType];1){
               
               
//出租情况
                var leaseNumber=leaseTab[txtType][j]["number"]
               
var startTm=leaseTab[txtType][j]["tm"];
               
var endTm=infoTab[ i ]["tm"];
               
var daysLen=endTm.diffday(startTm)
               
               
//无法退租,下一个
                if(leaseNumber=0){
                    console.log(
"无法退租,下一个")
                    
continue ;
                }
               
               
if(reclaimNumber>=leaseNumber){ //退租数量大于等于出租数量,出租量清空
                    table.push(resultTab,{
                        txtType;
                        leaseNumber;
                        startTm;
                        endTm;
                        daysLen;
                        
"正常退租"  
                    })
                    leaseTab[txtType][j][
"number"]=0;                  
                }
else {
                    table.push(resultTab,{
                        txtType;
                        reclaimNumber;
                        startTm;
                        endTm;
                        daysLen;
                        
"正常退租"  
                    })
                    leaseTab[txtType][j][
"number"]=leaseNumber-reclaimNumber;
                }
               
               
//更新退租数量
                reclaimNumber=reclaimNumber-leaseNumber;
               
               
//退租完毕
                if(reclaimNumber<=0){
                    
break ;
                }           
            }      
        }   
    }
   
   
for(txtType,infoTab in leaseTab){
        
for(i=1;#infoTab;1){
            
//未正常退租
            var unReclaimNumber=infoTab[ i ]["number"]
            
var startTm=infoTab[ i ]["tm"];
            
var endTm=settlementDate;
            
            
var daysLen=endTm.diffday(startTm)  
            
if(unReclaimNumber){
                table.push(resultTab,{
                    txtType;
                    unReclaimNumber;
                    startTm;
                    endTm;
                    daysLen;
                    
"丢失租期"  
                })
            }
        
        }      
    }      
   
return resultTab;      
}

var settlementDate=time(,"%Y-%m-%d")

var resultTab=settlement(leaseTab,reclaimTab,settlementDate);
for(i=1;#resultTab;1){
    console.log(resultTab[ i ][1],resultTab[ i ][2],resultTab[ i ][3],resultTab[ i ][4],resultTab[ i ][5],resultTab[ i ][6])
}

console.pause(
true);

小时候,幸福是一件东西,拥有就是幸福; 长大了,幸福是一个目标,达到就是幸福; 成熟后,发现幸福原来是一种心态,领悟就是幸福.
回复

使用道具 举报

4

主题

874

帖子

4704

积分

荣誉会员

Rank: 8Rank: 8

积分
4704
发表于 2015-1-21 12:02:42 | 显示全部楼层

代码整洁规范,赞一个!

代码整洁规范,赞一个!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-12-16 18:58 , Processed in 0.062500 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表