注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

汇总技巧

你快乐我快乐.... 汇集各类技巧,传播技巧,让我们共同熟练运用技巧..

 
 
 

日志

 
 

计算合同内各级别的价格函数  

2011-06-03 21:31:14|  分类: ◆ASP技巧 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 需求:
按月计算合同内各级别物品的总价
给定条件如下:
1.合同内共有四种级别物别,且价格不同;
2.各级别物品价格的定义为每月的价格;
3.每天的价格为各级别物品的价格除以30;
4.要求计算输入的日期段内的价格,(截止日期大于起始日期,如小于不必考虑)
5.如果两日期相差不到一个月,则小于15天的,总价按天数计算;大于等于15天的按月计算
6.如果两日期相差大于一个月,则整月的,总价按月计算;
7.大于一个月且非整月的,则小于15天的,总价按天数计算;大于等于15天的按月计算
实现:
计算指定时间段内的合同总价:brbr
form method=post action=test.asp?action=1
   发布起始日期:input type=text name=DateStart value=%=request(DateStart)%br
   发布截止日期:input type=text name=DateEnd value=%=request(DateEnd)%br
     AA 级价格:input type=text name=AA value=6000 /月 __ 200.00 /日br
     A 级价格:input type=text name=A value=4800 /月 __ 160.00 /日br
     B 级价格:input type=text name=B value=3200 /月 __ 106.66~/日br
     C 级价格:input type=text name=C value=2400 /月 __ 80.00 /日br
           各个级别数量按 10 个计算br
             input type=submit name=Submit3 value=总 计
/form
%
if request(Action)=1 then
 response.write 总价= Diff_Month(request(DateStart),request(DateEnd),request(AA),request(A),request(B),request(C),10,10,10,10)
end i
function Diff_Month(StartDate,EndDate,MoneyF_AA,MoneyF_A,MoneyF_B,MoneyF_C,AmountAA,AmountA,AmountB,AmountC)
 Different=DateDiff(m,StartDate,EndDate)
 '如果在一个月内
 if DateDiff(m, StartDate, EndDate)=0 then
  if DateDiff(d, StartDate, EndDate)+115 then
   Diff_Month=(MoneyF_AA/30)*AmountAA*(DateDiff(d, StartDate, EndDate)+1) + (MoneyF_A/30)*AmountA*(DateDiff(d, StartDate, EndDate)+1) + (MoneyF_B/30)*AmountB*(DateDiff(d, StartDate, EndDate)+1) + (MoneyF_C/30)*AmountC*(DateDiff(d, StartDate, EndDate)+1)
  end i
  if DateDiff(d, StartDate, EndDate)+1=15 then
   Diff_Month=MoneyF_AA*AmountAA + MoneyF_A*AmountA + MoneyF_B*AmountB + MoneyF_C*AmountC
  end i
 end i
 '如果相差大于一个月的整月
 if DateDiff(m, StartDate, EndDate)0 and DateDiff(d, DateAdd(m, Different, StartDate), EndDate)=0 then
   Diff_Month=(MoneyF_AA*AmountAA + MoneyF_A*AmountA + MoneyF_B*AmountB + MoneyF_C*AmountC)*Different
 end i
 '如果形如2002-03-15、2002-05-25
 if DateDiff(m, StartDate, EndDate)0 and DateDiff(d, DateAdd(m, Different, StartDate), EndDate)0 then
  '如果相差大于一个月且15天
  if DateDiff(d, DateAdd(m, Different, StartDate), EndDate)+115 then
   Diff_Month=(MoneyF_AA*AmountAA + MoneyF_A*AmountA + MoneyF_B*AmountB + MoneyF_C*AmountC)*Different
   Diff_Month=Diff_Month+((MoneyF_AA/30)*AmountAA*(DateDiff(d, DateAdd(m, Different, StartDate), EndDate)+1) + (MoneyF_A/30)*AmountA*(DateDiff(d, DateAdd(m, Different, StartDate), EndDate)+1) + (MoneyF_B/30)*AmountB*(DateDiff(d, DateAdd(m, Different, StartDate), EndDate)+1) + (MoneyF_C/30)*AmountC*(DateDiff(d, DateAdd(m, Different, StartDate), EndDate)+1))
  end i
  '如果相差大于一个月且=15天
  if DateDiff(d, DateAdd(m, Different, StartDate), EndDate)+1=15 then
   Diff_Month=(MoneyF_AA*AmountAA + MoneyF_A*AmountA + MoneyF_B*AmountB + MoneyF_C*AmountC)*(Different+1)
  end i
 end i
 '如果形如2002-03-15、2002-05-01
 if DateDiff(m, StartDate, EndDate)=1 and DateDiff(d, DateAdd(m, Different, StartDate), EndDate)0 then
  Different=DateDiff(m,StartDate,EndDate)-1
  '如果相差大于一个月且15天
  if DateDiff(d, DateAdd(m, Different, StartDate), EndDate)15 then
   Diff_Month=(MoneyF_AA*AmountAA + MoneyF_A*AmountA + MoneyF_B*AmountB + MoneyF_C*AmountC)*Different
   Diff_Month=Diff_Month+((MoneyF_AA/30)*AmountAA*(DateDiff(d, DateAdd(m, Different, StartDate), EndDate)+1) + (MoneyF_A/30)*AmountA*(DateDiff(d, DateAdd(m, Different, StartDate), EndDate)+1) + (MoneyF_B/30)*AmountB*(DateDiff(d, DateAdd(m, Different, StartDate), EndDate)+1) + (MoneyF_C/30)*AmountC*(DateDiff(d, DateAdd(m, Different, StartDate), EndDate)+1))
  end i
  '如果相差大于一个月且=15天
  if DateDiff(d, DateAdd(m, Different, StartDate), EndDate)=15 then
   Diff_Month=(MoneyF_AA*AmountAA + MoneyF_A*AmountA + MoneyF_B*AmountB + MoneyF_C*AmountC)*(Different+1)
  end i
 end i
end function
%
  评论这张
 
阅读(69)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017