首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Filemaker上查找要在公式中使用的按时间顺序排列的年龄

在Filemaker上查找要在公式中使用的按时间顺序排列的年龄
EN

Stack Overflow用户
提问于 2016-11-17 03:55:14
回答 2查看 143关注 0票数 0

我正在尝试根据一个人的出生日期(道布)和评估日期(DOE)计算一个按时间顺序排列的年龄。我需要将答案表示为一个可以放在方程式中的数字。例如,如果一个人的道布是12/26/07,DOE是10/13/15,那么按时间顺序排列的年龄将是7.75,而不是7;9 (7岁9个月)。小数位需要是12中的一个函数,而不是简单地表示以月为单位的年龄。我已经准确地计算了这一点,但是每次按时间顺序的年龄被配置为偶数年龄(9岁0个月)时,计算结果显示为90,我真的需要这个"90“为"9.0”,我可以做些什么来将其配置到我的计算中吗?目前适用于其他年龄段的计算是:

年( DOE ( DOE )) -年(道布)- If (日( DOE )<日(月(道布);日(道布);年( GetAsNumber ( DOE ));1;0)&( Mod (月( GetAsNumber ( DOE ))-月(道布)+ 12 - If (日( GetAsNumber (DOE))<日(道布);1;0)/ 12)

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2016-11-19 04:56:11

您的计算是正确的,但是您正在连接两个部分,而不是将它们相加。这就是为什么你得的是"90“而不是"9”

此外,如果您希望它是"9.0",则计算结果必须是数字;在布局模式中,将格式设置为带有固定小数的decimal。

代码语言:javascript
复制
Round (
    Year ( GetAsNumber ( DOE )) - Year ( DOB ) -
    If (
        GetAsNumber ( DOE ) < Date ( Month ( DOB ) ; Day ( DOB ) ; Year ( GetAsNumber ( DOE )));
        1 ;
        0)
    +
    ( Mod ( 
        Month ( GetAsNumber ( DOE ) ) - Month ( DOB ) + 12 -
            If (
                Day ( GetAsNumber ( DOE ) ) < Day ( DOB );
                1;
                0)
        ; 12 )
    / 12)
 ; 2 )
票数 0
EN

Stack Overflow用户

发布于 2016-11-19 08:55:03

我建议一种更简单的方法:

代码语言:javascript
复制
Let ( 
elapsedMonths = 12 * ( Year ( DOE ) - Year ( DOB ) ) + Month ( DOE ) - Month ( DOB ) - ( Day ( DOE ) < Day ( DOB ) ) 
;
Div ( elapsedMonths ; 12 ) + Mod ( elapsedMonths ; 12 ) / 12
)

请注意,这只计算完全经过的月份。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40641135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档