python strptime_Python法律实务应用——制作自己的LPR计算器(上)

3469bf6259521804aabc50f65fed905c.png

hello,大家好,我是虞元坚律师。好久不写文章,今天给大家介绍Python法律实务的一个基础应用——司法计算器的制作。

司法计算是一门律师基本功,尤其对诉讼律师来说,更是经常遇到,例如诉讼费、律师费、利息、违约金的计算等等。网络上,有各种各样的司法计算器工具可以供大家直接使用,比如针对2020年利息计算的新规定,律师云助理小程序就给大家提供了非常详细的LPR计算器功能。可是呢,第三方的计算器有好有坏,有时候我们还有自己的个性化需求,比如,市场上习惯将利息计算的天数,计头不计尾,但是可能我们有的律师或者法务根据客户的需要,需要又算头又算尾,又或者有自己个性化的违约金公式。如果每次都靠自己手算或者摁计算机,未免耗时又枯燥。既然学习了Python,我们不如利用Python来制作自己的计算器。接下来,我就以LPR计算器为例子,给大家介绍通过Python来编写LPR计算器小软件。重要的不是学习LPR计算器的开发,重要的是希望大家通过这篇文章,举一反三,能够自己编写各式各样的个性计算工具。话不多说,我们进入正题。

知识点归纳

  • 列表与字典的嵌套数据结构
  • 日期与时间戳的转换
  • 列表的循环

第一步:整理业务逻辑

其实编程只是一种将想法程序化的过程,最重要的是业务逻辑的设计,如果这个业务逻辑没有理顺的话,可能后面就走不通了,考虑的时候要将可能的情形尽量考虑全面。其实也不难,这里直接把方案告诉大家,如果有错误,欢迎大家指正:

  • 开始日期在2019年8月20日之前的,以过去同期同档利息的计算方式来计算(本文不做介绍)。
  • 019年8月20日(含20日当日)后的,每个月20号(不一定准确是20号)LPR更新当后(含当日),就取最新的LPR值,未更新之前,取更新上一期的lpr值。
  • 我们需要存储所有的LPR档期,并根据我们需要的日期段(比如:2019-10-10 TO 2020-02-20),调取相关的LPR档期进行计算。

第二步:建立自己的LPR数据库或存储文件

LPR跟之前的同期同档利息有一个不同点,就是LPR的利息央行每个月20号左右会更新,因此,需要在每月的20号留意央行的信息,并将数值保存下来。保存的方案有很多种,笔者是通过爬虫技术采集后放在数据库中,在需要的时候调用。对初学者来说,还构建数据库难度相对较高,可以直接保存在py文件中保存,在需要的时候以文本方式打开调用,或者直接放在Python文件的变量中。以下我就直接将2019-08-20起到2020-02-20止的所有的lpr利息放在lpr_lib这个变量中使用。可以看出,这是一个列表嵌套字典的数据类型。

lpr_lib

上面的“timeStamp”就是日期的时间戳,所谓时间戳,就是从1970年01月01日00时00分00秒计算到现在的秒数或者毫秒数。这里有个知识点,就是日期与时间戳的转换,你可以选择百度时间戳转换工具直接转换,也可以直接使用python将格式化的日期转换成时间戳,函数略微麻烦,没必要硬记,知道怎么调用就行了:

import 

日期转换成时间戳的目的,主要是为了比较日期大小或计算日期间隔,数值越大,日期越后。

第三步:给需要使用的变量赋值,变量的命名尽量与实际的含义有关。

capital

为了表述方便,下面开始日期、截至日期等术语,我就直接以变量名如startDate、endDate来代替。

第四步:获取相关日期内相关的lpr利息档次

为了找到我们需要的LPR档期,我们需要考虑出现的可能情况,有时候我们在编程中可以画一些简单的逻辑图来做辅助,有助于我们考虑尽可能多的情况:

bcede9647a969033f358c859e996a19f.png
LPR_Update表示LPR档期的更新日期

从上图中,我们可以看出,LPR_Update1是一定需要且存在的,LPR_Update2有可能存在,也可能不存在。比如现在是2020年03月02日, StartDate我也取该日,那么一直到当月20日左右新发布LPR之前,我们都是沿用的2月份的LPR利息。

上图中第一个LPR_Update1如何获取呢,如何保证在startDate之前的lpr档期正好是前一个而不是前前个,甚至更遥远的呢,其实只要计算两者时间戳之差,如果在一个月以内的,就是最近的一期:

#逻辑表述,非使用的代码

第二个LPR_Update2 就更容易了:

#逻辑表述,非使用的代码

上述两个逻辑合并在一起,本例中具体用python语言怎么表达呢:

mylpr

这里用到了列表循环,将存储在lpr_lib这个列表变量中符合我们要求的LPR档期全都保存到了一个新的列表变量mylpr当中。以上就完成了,LPR计算器工作的一半了,接下来,就要进入到具体的计算场景当中了,实务当中,各地的法院计算标准不一,有些地方以平均LPR值计算,有些地方以最后有效的LPR值作为计算,也有些地方可能以各个LPR来分段计算(笔者尚未遇到过),笔者在微信小程序"律师云助理"和网站中都已做成现成的计算器工具,欢迎体验。

律师云助理​www.lawtip.cn

81aac7bd40fb778f433e21ce551f612d.png
律师云助理小程序

以上完整的代码,整理起来就是:

import 

今天先写到这里,下半部分,我将择日奉上。另外我的新书筹备中,感兴趣的朋友就关注我吧。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值