如何计算小儿年龄,显示为:?岁?月?天

lzguang77 2014-11-22 07:38:30
出生日期=2014.01.01
当前日期=2014.11.22
按30天为一个月,计算出年龄显示为:?岁?月?天
...全文
464 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzguang77 2014-12-01
  • 打赏
  • 举报
回复
呵呵,我是说不知道在哪里给分,看不到有给分的地方
lygcw9602 2014-11-28
  • 打赏
  • 举报
回复
二一添作五。…。……。…。…。……
lzguang77 2014-11-28
  • 打赏
  • 举报
回复
各位老师辛苦了,真心的感谢!不知道怎么给分
lzguang77 2014-11-23
  • 打赏
  • 举报
回复
谢谢一楼老师的回答,您这个好像不是按每一个月30天算的
lzguang77 2014-11-23
  • 打赏
  • 举报
回复
引用 2 楼 lygcw9602 的回复:
楼主的30天为一个月,有何科学依据。 如果从医学上讲2月份28天就不算一个月了吗? 因此提问题不能凭想像。
谢谢您的回答,其实我就是一名医生,爱好VFP,现在正在编一个“儿童生长发育监测系统”,您所说的问题我也考虑过,之前软件也是这么做的,但院方要求达到30天才能算一个月。
lygcw9602 2014-11-23
  • 打赏
  • 举报
回复
楼主的30天为一个月,有何科学依据。 如果从医学上讲2月份28天就不算一个月了吗? 因此提问题不能凭想像。
lygcw9602 2014-11-23
  • 打赏
  • 举报
回复
楼上精神可嘉
oldbbb 2014-11-23
  • 打赏
  • 举报
回复
更正
dDate1 = {^2014/01/31}
dDate2 = {^2014/02/01}
天数 = dDate2 - dDate1
岁数 = INT(天数 / 360)
月数 = INT(MOD(天数, 360) / 30)
天数 = MOD(MOD(天数, 360), 30)
?  TRANSFORM(岁数) + "岁"
?? TRANSFORM(月数) + "个月"
?? TRANSFORM(天数) + "天"
RETURN
oldbbb 2014-11-23
  • 打赏
  • 举报
回复
晕,上面的代码还有误。 每月按30天计,是不是样:

dDate1 = {^2014/01/31}
dDate2 = {^2014/02/01}
天数 = dDate2 - dDate1
岁数 = INT(天数 / 360)
月数 = INT(MOD(天数, 360) / 12)
天数 = MOD(MOD(天数, 360), 12)
?  TRANSFORM(岁数) + "岁"
?? TRANSFORM(月数) + "个月"
?? TRANSFORM(天数) + "天"
RETURN
oldbbb 2014-11-23
  • 打赏
  • 举报
回复
没考虑到2月份特殊情况,上面给出的代码有误。
dDate1 = {^2014/01/31}
dDate2 = {^2015/02/01}

岁数 = YEAR(dDate2)
月数 = MONTH(dDate2)
IF DAY(dDate2) >= DAY(dDate1)
    天数 = DAY(dDate2) - DAY(dDate1)
ELSE
    月天数 = 32 - DAY(dDate2 - DAY(dDate2) + 32)
    天数 = 月天数 + DAY(dDate2) - DAY(dDate1)
    月数 = 月数 - 1
    IF 天数 < 0
        天数 = 天数 + 31
        月数 = 12
        岁数 = 岁数 - 1
    ENDIF
ENDIF
IF 月数 >= MONTH(dDate1)
    月数 = 月数 - MONTH(dDate1)
ELSE
    月数 = 12 + 月数 - MONTH(dDate1)
    岁数 = 岁数 - 1
ENDIF
岁数 = 岁数 - YEAR(dDate1)
?  TRANSFORM(岁数) + "岁"
?? TRANSFORM(月数) + "个月"
?? TRANSFORM(天数) + "天"
lzguang77 2014-11-23
  • 打赏
  • 举报
回复
oldbbb老师辛苦了,感谢您,也谢谢lygcw9602老师赐教!! 我先试一下
lygcw9602 2014-11-23
  • 打赏
  • 举报
回复
?{^2014/11/22}-{^2014/01/01}+1 326天
lygcw9602 2014-11-23
  • 打赏
  • 举报
回复
如果按30天为一个月 ?{^2014/11/22}-{^2014/01/01} 结果为326天,该新生儿应该是10个月26天,而不是实际的10个月21天。 这种规定补发少见
lygcw9602 2014-11-23
  • 打赏
  • 举报
回复
出生日期={^2014.01.01}
当前日期={^2014.11.22}
lnM=0
If Day(当前日期)>=Day(出生日期)
    天数=Day(当前日期)-Day(出生日期)
Else
    lnM=-1
    天数=Gomonth(当前日期,1)-当前日期+Day(当前日期)-Day(出生日期)+1
EndIf 
总月数=(Year(当前日期)-Year(出生日期))*12+(Month(当前日期)-Month(出生日期))+lnM

?"岁数:"+Padl(Int(总月数/12),2," ")+" 岁"
?"月数:"+Padl(总月数%12,2," ")+" 月"
?"天数:"+Padl(天数,2," ")+" 天"
oldbbb 2014-11-22
  • 打赏
  • 举报
回复
用竖式减法计算(按月实际天数) dDate1 = {^2014/01/01} dDate2 = {^2014/11/22} 岁数 = YEAR(dDate2) 月数 = MONTH(dDate2) IF DAY(dDate2) >= DAY(dDate1) 天数 = DAY(dDate2) - DAY(dDate1) ELSE 月天数 = 32 - DAY(dDate2 - DAY(dDate2) + 32) 天数 = 月天数 + DAY(dDate2) - DAY(dDate1) 月数 = 月数 - 1 ENDIF IF 月数 >= MONTH(dDate1) 月数 = 月数 - MONTH(dDate1) ELSE 月数 = 12 + 月数 - MONTH(dDate1) 岁数 = 岁数 - 1 ENDIF 岁数 = 岁数 - YEAR(dDate1) ? TRANSFORM(岁数) + "岁" ?? TRANSFORM(月数) + "个月" ?? TRANSFORM(天数) + "天"

2,722

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧