当前位置: 首页 > news >正文

语言中日期间的天数怎么计算_计算员工工龄,这个问题千万要注意

16577c594b495f204f54f56652093791.png

DATEDIF函数用于计算两个日期之间的天数、月数或年数。虽然是隐藏函数,但是名气却不小。在计算员工工龄、计算入职时间、计算人员年龄等等方面有着非常广泛的应用。

函数语法是:

DATEDIF(开始日期,结束日期,返回的间隔类型)

比如说,要计算工龄有几个月,公式是这样的:

=DATEDIF("2012-12-1","2019-4-1","m")

就是计算12年12月日至2019年4月1日有多少个完整的月份。

要计算年龄有多少岁,公式是这样的:

=DATEDIF("1988-6-1","2019-4-1","y")

就是计算1988年6月1日出生的员工到2019年4月1日有多少个整年数。

DATEDIF虽然功能强大,而且简单易用,但是有时候也会有点小脾气,今天就和大家分享一下这个函数在使用中遇到的问题:

c38c339e9057e894682ce648aa809479.png

我们要计算员工入职到离职期间一共工作了多少个月,但是红线框出的两条计算结果,明显和预期不一致了。

我们的副班小污同志辛辛苦苦工作了一个月,但却啥都不算,不带这么玩的,这是严重的拖欠农民工的工资啊。

咱们仔细观察,会发现只有当DATEDIF的结束日期是当月的最后一天,而开始日期的天数比结束日期的天数大的时候,计算结果会少一个月

既然找到了问题,解决就方便了,把原来的公式修订一下:

=DATEDIF(C2,D2,"m")+AND(DAY(C2)>DAY(D2),D2=EOMONTH(D2,0))

我们来看一下这个公式,其实就是多了一个简单的判断,用AND函数链接两个条件:

DAY(C2)>DAY(D2),是判断开始日期的天数是否大于结束日期的天数

D2=EOMONTH(D2,0),是判断结束日期是否当月的最后一天

当开始日期的天数大于结束日期的天数,并且结束日期是否当月的最后一天时,就在DATEDIF公式结果上加1个月,否则就保持DATEDIF的结果。

好了,我们的问题解决了,当然可以把这个公式运用到实际工作中,但是我要说的是关键不是只学会公式,而是要学会碰到问题怎么去寻找错误原因,再分析解决的方法,有了思路,写公式就是水到渠成的了。

作者:光

ExcelHome学院助教

5250da21f815c4f6980467553ad4586f.png

专业的职场技能充电站

相关文章:

  • springboot过滤字段_springboot实现拦截器之验证登录示例
  • python计算机入门书籍_计算机学习--摘自python 入门书 侯爵
  • 如何卸载更换MySQL版本_mysql卸载(win10 适用于想更换版本的)
  • dos导入mysql文件_dos下导入mysql备份文件
  • java -jar 未响应_简单易学的测试攻略:JMeter测试Java请求示例
  • python 求余数_Python数据结构与算法——散列(Hash)
  • 此操作系统不支持 .net framework 4.6.2。_聊聊.net应用程序的Docker镜像
  • mysql binlog 实时_实时备份mysql binlog日志 脚本
  • oracle和mysql用户名_oracle 11g 默认用户名和密码
  • php mysql varchar_mysql中VARCHAR长度详细介绍
  • python图像读写技巧_Python图像读写方法对比
  • k8s一个容器多个镜像_AWS 容器三大新品:K8s 发行版,免费镜像库和 “Game Changer”AWS Proton...
  • c语言中的mecpy的用法_C语言的memcpy用法
  • python 判断字符串在数组中_一日一技:在 Golang 中如何快速判断字符串是否在一个数组中...
  • python像数常用函数_python图像处理常用函数
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 【附node操作实例】redis简明入门系列—字符串类型
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 03Go 类型总结
  • centos安装java运行环境jdk+tomcat
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • gf框架之分页模块(五) - 自定义分页
  • JavaScript 一些 DOM 的知识点
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • k8s如何管理Pod
  • leetcode46 Permutation 排列组合
  • Octave 入门
  • ucore操作系统实验笔记 - 重新理解中断
  • Vue2 SSR 的优化之旅
  • 从零开始的无人驾驶 1
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 数据结构java版之冒泡排序及优化
  • 小李飞刀:SQL题目刷起来!
  • 携程小程序初体验
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • 进程与线程(三)——进程/线程间通信
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • # centos7下FFmpeg环境部署记录
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #FPGA(基础知识)
  • #include<初见C语言之指针(5)>
  • (11)MATLAB PCA+SVM 人脸识别
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (强烈推荐)移动端音视频从零到上手(下)
  • (全注解开发)学习Spring-MVC的第三天
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • *2 echo、printf、mkdir命令的应用
  • .Net Memory Profiler的使用举例
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值