计算工龄

最近有一个项目需要做一些简单的工资结算工作,里面有一项需要根据入职时间和截止时间计算工龄,根据工龄规则计算对应的工龄工资,但是在设计器组件中只找到了时间相差天数组件,所以自己写了一个计算工龄的函数,现推荐给大家(通过 datetime 包实现):

代码如下:

import datetime


def work_age(t1, t2):
    """
    计算工龄
    :param t1: 参加工作时间
    :param t2:截至计算时间
    :return:
    """
    # 首先判断是不是时间格式
    if not isinstance(t1, datetime.datetime):
        t1 = datetime.datetime.strptime(t1, "%Y-%m-%d")
    if not isinstance(t2, datetime.datetime):
        t2 = datetime.datetime.strptime(t2, "%Y-%m-%d")
    year1 = t1.year
    year2 = t2.year
    month1 = t1.month
    month2 = t2.month
    # 工龄保留两位小数
    num = round(year2 - year1 + (month2 - month1) / 12, 2)
    return num


if __name__ == '__main__':
    print(work_age("1982-09-01", "2020-03-01"))  # 37.5
    print(work_age("1982-10-01", "2020-03-01"))  # 37.42