之前转了一篇网上常见的出生日期转年龄的函数,但根本没成功。所以这里自己写了个。
#传过来的日期必须是字符串型的。
@staticmethod
def calculate_age(born):
today = datetime.date.today()
birthday = datetime.datetime(*time.strptime(born,"%Y-%m-%d")[:3])
age = today.year - birthday.year
if today.month - birthday.month < 0:#当前月份小于生日月份时就可以肯定当前年的生日还未过,此时年龄应减1岁
age -= 1
if today.month - birthday.month == 0:#等于0就表示月份相同,就得看日是否相同
if today.day - birthday.day < 0:#当前日小于生日的日就可以肯定当前年的生日还未过,此时应减1岁
age -= 1
if age < 0:#这个必须放在最后判断
age = 0
return age