测试工程师之【python】按工龄开始日期和司龄开始日期计算当年法定年假
1.脚本需求:
公司内部休假系统,计算规则比较复杂比较恶心,前期准备工作看看文档什么的,想着自己写一个一摸一样类似的规则方便到时候给出工龄和司龄日期自动计算结果,省的到时候用计算器手工算了,另一方面是熟悉业务方便后期功能测试写用例场景能想的全覆盖的多一点
2.代码实现及思路
对年假计算规则百度查的再加上需求文档上有一部分示例场景了解的,概括来说就是未满10年-已满10年-满10年未满20年获得对应的年假天数,在根据司龄什么时候入职的是否当年1月1之前还是之后再去找对应的计算规则,猜测应该有bug,因为判断条10年20年跨档写死了,
import datetimedef legal_annual_leave(working_years_Starttime,Secretary_Ling_Starttime):Small_10,Small_20 = 0,0working_years_Starttime = datetime.date(int(working_years_Starttime.split('-')[0]),int(working_years_Starttime.split('-')[1]),int(working_years_Starttime.split('-')[2]))Secretary_Ling_Starttime = datetime.date(int(Secretary_Ling_Starttime.split('-')[0]),int(Secretary_Ling_Starttime.split('-')[1]),int(Secretary_Ling_Starttime.split('-')[2]))if datetime.date(datetime.date.today().year,1,1).__sub__(Secretary_Ling_Starttime).days > 0:That_year_1month1 = datetime.date(datetime.date.today().year,1,1)differ_day = That_year_1month1.__sub__(working_years_Starttime).dayswhile 1:if str(That_year_1month1) == str(That_year_1month1.year) + '-12-31':breakThat_year_1month1 += datetime.timedelta(days=1)differ_day += 1if differ_day == 3650:Small_10 = That_year_1month1elif differ_day == 7300:Small_20 = That_year_1month1if Small_10:return ((Small_10.__sub__(datetime.date(datetime.date.today().year,1,1)).days / 365) * 5) + ((datetime.date(datetime.date.today().year + 1,1,1).__sub__(Small_10).days / 365) * 10)elif Small_20:return ((Small_20.__sub__(datetime.date(datetime.date.today().year,1,1)).days / 365) * 10) + ((datetime.date(datetime.date.today().year + 1,1,1).__sub__(Small_20).days / 365) * 15)elif differ_day < 3650:return ((datetime.date(datetime.date.today().year + 1,1,1).__sub__(datetime.date(datetime.date.today().year,1,1)).days / 365) * 5)elif 3650 < differ_day < 7300:return ((datetime.date(datetime.date.today().year + 1,1,1).__sub__(datetime.date(datetime.date.today().year,1,1)).days / 365) * 10)else:Secretary_Ling_Starttime_1 = Secretary_Ling_Starttimediffer_day = Secretary_Ling_Starttime.__sub__(working_years_Starttime).days + 1while 1:if str(Secretary_Ling_Starttime) == str(Secretary_Ling_Starttime.year) + '-12-31':breakSecretary_Ling_Starttime += datetime.timedelta(days=1)differ_day += 1if differ_day == 3650:Small_10 = Secretary_Ling_Starttimeelif differ_day == 7300:Small_20 = Secretary_Ling_Starttimeif Small_10:return ((Small_10.__sub__(Secretary_Ling_Starttime_1).days / 365) * 5) + ((datetime.date(datetime.date.today().year + 1,1,1).__sub__(Small_10).days / 365) * 10)elif Small_20:return ((Small_20.__sub__(Secretary_Ling_Starttime_1).days / 365) * 10) + ((datetime.date(datetime.date.today().year + 1,1,1).__sub__(Small_20).days / 365) * 15)elif differ_day < 3650:return ((datetime.date(datetime.date.today().year + 1,1,1).__sub__(Secretary_Ling_Starttime_1).days / 365) * 5)elif 3650 < differ_day < 7300:return ((datetime.date(datetime.date.today().year + 1,1,1).__sub__(Secretary_Ling_Starttime_1).days / 365) * 10)if __name__ == "__main__":print(legal_annual_leave('2011-01-01','2020-1-5'))
测试工程师之【python】按工龄开始日期和司龄开始日期计算当年法定年假相关推荐
- 测试工程师之【python】按工龄开始日期和司龄开始日期计算当年公司福利年假
1.脚本需求: 公司内部休假系统,计算规则比较复杂比较恶心,前期准备工作看看文档什么的,想着自己写一个一摸一样类似的规则方便到时候给出工龄和司龄日期自动计算结果,省的到时候用计算器手工算了,另一方面是 ...
- 测试工程师之Python面试题(附答案)
1.请把字符串"abcde"里面的字符,逐个,打印出来 ss="abcdefgh"for i in ss:print(i) 2.对字符串"www.au ...
- python全栈测试开发工程师_全栈测试工程师
不久前,一位朋友让帮忙推荐个测试工程师,于是聊到了他们对测试工程师的诉求. 朋友公司是一家做教育软件的公司:Web端.App端产品都有涉及. 最初的诉求就是想找一位有1-2年相关产品测试经验的人即可. ...
- Python Json数据结构 打印json结构里含有$符号value的值 并且去重里面value相同的值 77hub 北京企业科技 企企 测试工程师面试 简单代码算法题
目录 前言 一.题目要求 二.示例数据 三.示例代码 四.解题思路和方法分析 4.1 解题思路分析 4.2 正则方法解题 不正确的解题思路 4.3 递归方法解题 正确的解题思路 4.4 关于解题和面试 ...
- 面试——游戏测试工程师(20190918)
小小的记录一下求职经历,一起加油呀~ ٩̋(•͈ω•͈)و 职位描述 根据游戏功能设计文档编写测试用例: 根据测试用例对游戏产品进行全面测试,撰写测试报告,提交测试结果,并对测试结果进行分析: 对游戏 ...
- 【软件测试】测试员vs测试工程师,你是测试员还是测试工程师?
目录:导读 前言 一.Python编程入门到精通 二.接口自动化项目实战 三.Web自动化项目实战 四.App自动化项目实战 五.一线大厂简历 六.测试开发DevOps体系 七.常用自动化测试工具 八 ...
- 一位3年测试工程师的焦虑:月薪还不到3W,真的很担心被后面的小年轻挤掉......
前言 在互联网行业,很多人去竞争一个岗位,优胜劣汰,这已经是常态了.如果能力和体力不够,就会被淘汰.看起来生动的工作生活歇斯底里却让许多人焦虑不安. 最近,在脉脉上看到一名来自211本科的自动化测试程 ...
- 可爱的python测试开发库(python测试开发工具库汇总)
2019独角兽企业重金招聘Python工程师标准>>> 欢迎转载,转载请注明来源: github地址 谢谢点赞 本文地址 Python测试开发库 参考资料 https://githu ...
- “我有技术到哪都是一样的”?年薪40W测试工程师被裁,回怼的这一番话,令人沉思
一位年薪40W测试工程师被开除回怼道:"反正我有技术,在哪不一样" 一技傍身,万事不愁,当我们掌握了一技之长后,在职场上说话就硬气了许多,不用担心被炒,反过来还可以炒了老板,这一点 ...
最新文章
- Spring Boot 关于 @EnableConfigurationProperties 注解 —— 使用 @ConfigurationProperties 注解的类生效。
- 视觉平衡与物理平衡_设计中的视觉平衡
- P4342:[IOI1998]Polygon(区间dp)
- springboot怎么替代jsp_如何在SpringBoot中使用JSP ?
- telegraf输出MySQL_Grafana+influxdb+telegraf初探-快速监控主机与mysql
- mysql: you can't specify target table 问题解决
- 五一假期四天_假期在家上班的12天
- 开环直流电机的机械特性_无刷直流电动机的开环调速机械特性研究
- LinkedHashMap,HashMap,TreeMap
- sizeof运算符和size_t类型比较
- MQTT 控制报文 - PINGREQ心跳报文,PINGRESP - 第4章
- Java 跑酷游戏 rush,翻转跑酷游戏安卓下载|翻转跑酷最新版(Flip Rush)下载v1.0.5-乐游网安卓下载...
- 国庆期间新闻回顾:微软智斗盗版 华为出手3Com
- 商城项目数据库设计中订单表
- 代码审计 JavaScript代码理解.
- 线性同余法[纯理论]
- 全志A33_Vstar
- Windows 10 低版本驱动数字签名更新的必要性
- AB-PLC之间通讯
- Cesium实现自定义的广告牌效果