ms-access - DateDiff 错误地计算年龄
问题描述
在 Microsoft Access 中,我在表单上的文本框中使用 DateDiff 公式来计算一个人的年龄。用户输入出生日期,另一个名为“年龄”的文本框根据出生日期和今天的日期计算并显示年龄。但由于某种原因,年龄不正确。这是我用来确定年龄的公式。
=DateDiff("yyyy",[txtDoB1],Date()) 'today is 2/12/2021
=DateDiff("yyyy", #5/24/1979#, #2/12/2021#) 'this has the dates manually typed in
DateDiff 公式返回 42 作为年龄。这是不正确的。应该是 41. 为什么 DateDiff 公式会导致年龄不正确?我究竟做错了什么?
解决方案
DateDiff 公式不能很好地计算年份之间的差异。如果您"yyyy"
在 DateDiff 公式中使用,则它仅使用公式中提供的 2 个日期的年份部分来计算年份差。这会导致不希望的结果。在您的示例中,DateDiff 公式2021
将从 2021 年 2 月 12 日开始,并从 1979 年 5 月 24 日减去1979
。或者换句话说,2021 - 1979 = 42
。
而是尝试使用以下公式。
=Int((Date()-[txtDoB1])/365.25) '365.25 compensates for leap years
=Int((#2/11/2021#-#5/24/1979#)/365.25)
推荐阅读
- algorithm - 第一个除以所有数字的数字 (1,2,...,100)
- android - NullPointerException 与导航组件的参数与 defaultValue
- asp.net-core - ASP.NET CORE 中基于角色的静态内容访问
- php - 执行查询获取数组而不是值
- java - 面向对象将项目添加到 arrayList
- python - 如何在 Tensorflow 中获取 CUDA/GPU/设备指针?
- python - 获取一个数除以另一个数和余数的所有时间的列表
- django - 自定义刷新 JWT 令牌 Django 中的错误
- python - 如何在 python 中将状态变量保留在两个级别?
- javascript - 如何使用popper js相对于主体而不是父级定位下拉列表