article_image

免责声明:本文仅仅展示作者工作中技术细节,不构成任何法律上的意见或建议,如果您有需要,请委托专业人士。

我目前从事法律工作,经常需要计算诉讼费1和律师费2。解决此事基本上有两派,年轻一点的喜欢直接翻小程序,年长一辈的更习惯找年轻人:“小李,帮我算一下”。不过,联网的工具总会掉链子,如果在客户面前刷了几次都打不开网页,场面就太尴尬了。

事实上,诉讼费和律师费其实都有固定计算方式,早就有人写过 Excel 函数;而在手机(iOS)上,也可以用 Shortcuts 自制计算工具,离线、快速、可靠地估算费用。这篇文章脱胎于法律工作,不过设计思路也适用于其他涉及分段计算的场合,如奖金和津贴、利息、运输费用、物业费等等。

Alt text
随手计算诉讼费用(图中为受理费)

理解诉讼费或律师费的计算方式

在使用 Shortcuts 解决问题之间,需要先理解问题本身,即诉讼费用是怎么算出来的。

根据《诉讼费用交纳办法》(国务院令第481号)相关规定,财产案件根据诉讼标的额大小有明确的计费公式,乍看上去有些复杂,本质上无非是分段收费,和计程车分段的原理一样3,请原谅我用代码框展示法律条文,不过,反正法律本身也是一种代码(code)嘛。

1.不超过1万元的,每件交纳50元;
2.超过1万元至10万元的部分,按照2.5%交纳;
3.超过10万元至20万元的部分,按照2%交纳;
4.超过20万元至50万元的部分,按照1.5%交纳;
5.超过50万元至100万元的部分,按照1%交纳;
6.超过100万元至200万元的部分,按照0.9%交纳;
7.超过200万元至500万元的部分,按照0.8%交纳;
8.超过500万元至1000万元的部分,按照0.7%交纳;
9.超过1000万元至2000万元的部分,按照0.6%交纳;
10.超过2000万元的部分,按照0.5%交纳。

《诉讼费用交纳办法》并未贴心地提供速算扣除数或速算增加数,也未提供通用公式,故我根据法规原文列出了完整的受理费用计算表达式(其中的 x 表示输入的数字,尽管冗长,起码可以看出各个数字如何得来,不至于弄巧成拙、算错金额。惟需注意,《诉讼费用交纳办法》在各地具体实施时有一定弹性,自己计算的数字仅作参考之用,心中有底。最终需以法院提供的数额为准。至于律师费,则各地差异甚大,如读者有兴趣或有需求,请咨询您所在地区的律师协会或司法机构。

50
0.025*(x-10000)+50
0.020*(x-100000)+50+2250
0.015*(x-200000)+50+2250+2000
0.010*(x-500000)+50+2250+2000+4500
0.009*(x-1000000)+50+2250+2000+4500+5000
0.008*(x-2000000)+50+2250+2000+4500+5000+9000
0.007*(x-5000000)+50+2250+2000+4500+5000+9000+24000
0.006*(x-10000000)+50+2250+2000+4500+5000+9000+24000+35000
0.005*(x-20000000)+50+2250+2000+4500+5000+9000+24000+35000+60000

用 Shortcuts 实现自动分段计算

确定各个区间之款额的计算方式后,就要将其翻译为 Shortcuts 的语言。很不幸,Shortcuts 没有直接提供类似C语言的的 Switch 或 Case 模块,面对分支情况如此众多的诉讼费计算,似乎只能写上一场串的 If——显然,苟真如此丑陋,我就不会写这篇文章了。

解决方案仍然是词典(Dictionary),即将各种情况写入词典,然后匹配对应的计算表达式(上一节已经全部列出)。词典的另一妙处在于,含有变量的表达式也可以藏身其中,可大大减少动作之冗余。关于词典和计算表达式,本文未尽之处可参阅《给照片添加“徕卡风格水印”,兼谈 Shortcuts 中的字典》《如何在手机上制作九宫格切图,兼谈 Shortcuts 中的数学》

然而,问题至此只解决了一半,仍需判断输入数额处于哪一个区间,而这,似乎又要落入 If 的荆棘丛中。所幸数额构成一个从小到大的有序序列,我们可以结合循环(Repeat with)判断两个模块,组合出判别款额落在哪个区间:

  1. 以各区间起步数额为键(key)、对应计算表达式为值(value)制作词典,顺序从上到下,由从大到小;
  2. 获取所有的键,逐项循环,由于词典键是从大到小排列的,循环时也会从最大的起步数字开始;
  3. 如果输入的数字大于当前键,则说明落在当前区间,可套用对应的计算表达式,并结束循环;
  4. 上一步中,输入数字若小于当前键,则继续循环,直到区间匹配为止。
Alt text
Shortcuts 步骤

如此一来,Shortcuts 就能在尽可能短的时间内确定表达式,并据此计算出费用,实际使用中快如加减乘除,毫无延迟;而传统的 If 式思路,其产物往往磕磕绊绊,明显感觉到进度条要转上一圈儿。

小结及其他

计算类动作是 Shortcuts 动作设计中别有魅力的一个分支。在 Shortcuts 的各种进阶模块——主要是 URL Scheme、正则表达式和 Get Contents of URL 中,惟计算类模块完全自给自足,即不依赖网络,也不仰赖第三方软件或 API,却依然潜力难测。而与循环、判断和字典等模块结合之后,数学思维和计算机思维一碰撞,结果往往非常有趣——且不失实用价值。

无论您是收钱的一方,常常需要计算相关费用,还是付钱的一方,想另行核对一遍、避免被宰客,或者仅仅是想用 Shortcuts 锻炼脑力,都不妨尝试自行设计计算工具。


  1. 包括案件受理费、保全费和申请执行费。
  2. 主要是比例收费和风险代理两种情况比较复杂,如果是一口价,则显然不需要搬出计算器。
  3. 当然,究竟什么是“财产案件”,实践中存在一些争议,例如请求解除合同,部分地方法院就认为不是财产性案件,只收50块起步价——而如果“打表计费”,则很可能收到几万乃至几十万,差别实在巨大。

author_avatar

Lawyer, macOS/iOS Automation Amateur