标题:求解月龄?
只看楼主
shzhshg
Rank: 1
等 级:新手上路
帖 子:147
专家分:0
注 册:2010-5-7
结帖率:85.71%
已结贴  问题点数:5 回复次数:12 
求解月龄?
字段名   类型
出生日期  字符
查体日期  字符
月  龄  字符

例如:出生日期  2004.05.10
   查体日期  2008.10.06
   如何得到月龄  4岁5月?
搜索更多相关主题的帖子: 出生日期 如何 
2014-05-08 06:30
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:0 
查体日期-出生日期=4.5
2014-05-08 07:07
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
不动脑筋

活到老,学到老! http://www. E-mail:hu-jj@
2014-05-08 07:15
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:649
专家分:2156
注 册:2014-2-7
得分:5 
d1 = ctod(出生日期)                && 转换成日期型
d2 = ctod(查体日期)
nYear = year(d2)-year(d1)          && 求相差年份
nMont = mont(d2)-mont(d1)          && 求相差月份
if nMont < 0                       && 若查体日期的月份比出生日期的月份小
    nYear = nYear - 1              && 修正年份
    nMont = nMont + 12             && 修正月份
endif
? tran(nYear)+'岁'+tran(nMont)+'个月'    && 显示查询结果

泉城飞狐
2014-05-08 08:31
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用shzhshg在2014-5-8 06:30:25的发言:

字段名   类型
出生日期  字符
查体日期  字符
月  龄  字符

例如:出生日期  2004.05.10
   查体日期  2008.10.06
   如何得到月龄  4岁5月?

应该是4岁4个多月

坚守VFP最后的阵地
2014-05-08 10:22
shzhshg
Rank: 1
等 级:新手上路
帖 子:147
专家分:0
注 册:2010-5-7
得分:0 
回复 4 楼 liuxingang28
求解月龄?
字段名   类型
出生日期  字符
查体日期  字符
月  龄  字符

例如:出生日期  2004.05.10
   查体日期  2008.10.06
   如何得到月龄  4岁5月?
老师以下代码可以实现以上的要求
d1 = ctod(出生日期)                && 转换成日期型
d2 = ctod(查体日期)
nYear = year(d2)-year(d1)          && 求相差年份
nMont = mont(d2)-mont(d1)          && 求相差月份
if nMont < 0                       && 若查体日期的月份比出生日期的月份小
    nYear = nYear - 1              && 修正年份
    nMont = nMont + 12             && 修正月份
endif
? tran(nYear)+'岁'+tran(nMont)+'个月'    && 显示查询结果

老师,我还有个要求?就是通过出生日期和查体日期能否算出月龄?

比如:4岁5月就是53
2014-05-10 07:12
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:649
专家分:2156
注 册:2014-2-7
得分:0 
当然可以,代码稍加修改即可:
d1 = ctod(出生日期)                && 转换成日期型
d2 = ctod(查体日期)
nYear = year(d2)-year(d1)          && 求相差年份
nMont = mont(d2)-mont(d1)          && 求相差月份
nMonthAge = nYear*12+nMont         && 求月龄
? '月龄为:'+tran(nMonthAge)       && 显示查询结果

泉城飞狐
2014-05-10 10:01
shzhshg
Rank: 1
等 级:新手上路
帖 子:147
专家分:0
注 册:2010-5-7
得分:0 
回复 4 楼 liuxingang28
? tran(nYear)+'岁'+tran(nMont)+'个月'    && 显示查询结果
老师,这句能否实现表内直接从查体日期-出生日期得到年龄字段中?
2014-05-18 22:25
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
以下是引用shzhshg在2014-5-18 22:25:57的发言:

? tran(nYear)+'岁'+tran(nMont)+'个月'    && 显示查询结果
老师,这句能否实现表内直接从查体日期-出生日期得到年龄字段中?

年龄是在不断变化的,除非这个人去世了,年龄才定格在某个数值。设置年龄字段的意义不大,有了出生年月和截止年月,就可以很方便地计算出年龄来。具体如何计算,建议楼主还是看帮助文件中的日期型数据的处理,这样可能印象会更深些。

活到老,学到老! http://www. E-mail:hu-jj@
2014-05-19 07:18
hyz00001
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:168
专家分:137
注 册:2012-10-5
得分:0 
good job .
2014-05-20 17:36



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-431182-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.672895 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved