有时候我们需要通过日期的加减来计算年龄,以下函数呢就是一个可以简单进行年龄计算的函数啦~

from datetime import datetime
def calculate_age(start_time,end_time):try:if start_time != "None" and end_time != "None":start_d = datetime.strptime(start_time, "%d-%b-%y")end_d = datetime.strptime(end_time, "%d-%b-%y")#因为这里用的是两位数的年份,所以要考虑到相减为负数的情况!(比如2020-1990本来应该是30岁,但是20-90结果却是-70)#所以要先进行一个大小比较if start_d.year >  end_d.year:if end_d.month > start_d.month:age = 100 + (end_d.year - start_d.year)else:age = 100 + (end_d.year - start_d.year) - 1else:if end_d.month > start_d.month:age = end_d.year - start_d.yearelse:age = end_d.year - start_d.year -1except:age = Nonereturn age

默认start_timeend_time 两个日期均以字符串的形式输入,函数datetime.strptime可以把字符串按照固定的格式转换为时间类变量。其中“%d-%b-%y"对应输入字符串的简写格式。一些常用的格式如下:

  • %y 两位数的年份表示(00-99)
  • %a 英文星期简写
  • %A 英文星期的完全
  • %b 英文月份的简写
  • %B 英文月份的完全
  • %c 显示本地日期时间
  • %d 日期,取1-31
  • %H 小时, 0-23
  • %I 小时, 0-12
  • %m 月, 01 -12
  • %M 分钟,1-59
  • %j 年中当天的天数
  • %w 显示今天是星期几
  • %W 第几周
  • %x 当天日期
  • %X 本地的当天时间
  • %y 年份 00-99间
  • %Y 年份的完整拼写

因为我写这个函数是为了使用两列不同的日期特征生成新的一列表示年龄的特征,所以接下来就需要应用到数据集中啦:

for i in range(0,len(data)):data.at[i,'Age'] = calculate_age(str(data.at[i,'birthDate']),str(data.at[i,'endDate']))

其中有两个小小坑:
(1)当输入 start_timeend_time 有空值时,是不能转换为日期的,即,当 birthDateendDate 两个特征中中存在空值时,是无法计算对应的Age的。所以函数中将空值进行了一个过滤 if start_time != None and end_time != None,保证进入转换和相减的日期都是干净的。同时,加入异常处理模块,如果遇到异常,则对应的年龄赋值为零。
(2)因为我这里用的是两位数的年份,所以要考虑到相减为负数的情况。比如2020-1990本来应该是30岁,但是使用两位数年份20-90结果却是-70,所以要先进行一个大小比较,再分类进行相减。

通过日期的相减计算年龄相关推荐

  1. 日期相减计算年_Excel教程:excel日期问题的小妙招

    提示:小程序可以高清看本公众号视频教程 苹果iOS用户请微信扫码学习 1.怎么快速输入当前日期? 函数: 输入公式:=TODAY() TODAY函数:返回日期格式的当前日期. 搜狗输入法: 在搜狗输入 ...

  2. EXECL日期相减计算工龄

    EXECL日期的加减计算工龄 =TODAY(),可以返回今天的日期 =NOW(),则可以返回当前日期和时间 根据入职和现在(或者离职)时间可以计算出工龄,在结果单元格内输入:=DATEDIF(A2,B ...

  3. jsp中两个字符串格式的日期可以相减吗_举个栗子!Tableau 技巧(126):学几个常用的日期函数...

    当我们的数据源有日期字段时,想根据日期实现需要的分析呈现,使用函数对日期进行计算,就非常有必要了! Tableau 中的日期函数很多,今天我们分享数据粉常用的 7 个函数,看它们如何帮助实现日期的计算 ...

  4. sql日期时间相减语句

    sql日期时间相减语句 本款教程利用了datediff函数,来对数据库教程的日期进行相减查询哦,下面便写了n种关于mssql 日期相减的方法. sql中两个日期相减 1.相差天数 select tru ...

  5. mysql 时间相减取秒_MySQL两个日期字段相减得到秒的方法

    一.MySQL中两个DateTime字段相减 假定表名为tblName,两个DateTime字段名分别为beginDateTime,endDateTime,以下是相关两个mysql日期字段相减的SQL ...

  6. 日期相减计算年_函数 | Excel有个“秘密”函数,计算年龄工龄特方便

    工作中经常会遇到涉及日期间隔的计算问题,比如计算两个日期之间的天数.月数.年数,这时需要用到Excel中一个秘密函数. 说到"秘密",是因为你在微软Excel提供的的函数列表里是找 ...

  7. php 日期相减获得天数,PHP两个日期相减 计算天数、月、年[Stack Overflow]

    本文主要解决PHP如何判断两个日期之间相距的天数,并可换算为月.年. 在PHP5.3以上版本,可以使用strtotime()后的数值直接相减,然后换算为年月日.举例: $date1 = "2 ...

  8. java Date日期时间相减 精确到毫秒

    本人是代码菜鸟 首先按照从其他地方介绍的普遍的计算方式,Date.getTime获取日期时间的long值来相减 //设置Date格式为"年-月-日 小时:分钟:秒.毫秒" Simp ...

  9. 实现sqlite datediff日期时间相减(日期差)的方法

    sqlite里有个julianday函数转化后可以直接相减,得到的结果是以天(day)为单位数值,如果不足一天会以小数表示.于是想到应该可以用来换算成时间,即可以进行时间比较,比如要计算精确到hour ...

最新文章

  1. 初步学习Spring Aop使用之注解方式
  2. python下载的文件放在哪里的-python实现文件下载的方法总结
  3. 一周一论文(翻译 总结)— [SOCC 13] jVerbs Ultra-Low Latency for Data Center Applications 在JVM虚拟机上构建RDMA的verbs操作
  4. java 重写paint_java笔记 重写paintComponent方法以实现jPanel加背景
  5. 推荐系统遇到曝光偏差怎么办?用对比学习!
  6. Qt中使用线程的几种方式及区别
  7. mongodb 索引建立问题
  8. TCP/IP学习笔记(七)四次挥手
  9. 软件工程 团队博客作业 如何评价个人在团队中的绩效
  10. 343.整数拆分(力扣leetcode) 博主可答疑该问题
  11. 失态的三星正在把华为手机送上全球第一宝座
  12. PySerial库的简单用法
  13. 一键去“码”的AI,还能认出带上口罩的脸
  14. python资产负债表_用Python清理雅虎财务资产负债表
  15. m基于ACO蚁群优化的FCM模糊聚类算法matlab仿真
  16. 设计模式 - 状态模式
  17. Win10桌面图标显示白色但能正常使用
  18. ai怎么画路线_AI入门教程!怎样画出专业又艺术的几何线条图案
  19. 密码编码学与网络安全(2):对称密码之传统加密技术
  20. 服务器蓝屏 查看系统日志文件,Windows10系统查看蓝屏日志的方法

热门文章

  1. 卧槽,迅雷的代码结构被扒了精光
  2. 计算机学硕报考院校人数,2020考研报考人数:这些学校人数过万!
  3. Oracle的学习心得和知识总结(七)|Oracle数据库Literals技术详解
  4. WKID对照表:Projected Coordinate Systems
  5. Oracle数据库:创建和删除视图view,简单和复杂视图,内建视图,topN分析,oracle分页查询
  6. C# Fleck Socket
  7. invalid byte 1 of 1-byte UTF-8 sequence
  8. PDF文件太大了,如何免费压缩变小?
  9. Linux如何查看显卡版本
  10. 无线充电动牙刷芯片方案功能和原理介绍