以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  求助:周岁的计算公式  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=6242)

--  作者:cxabc123
--  发布时间:2010/3/19 16:59:00
--  求助:周岁的计算公式
在易表中用函数可以计算出准确的周岁年龄,而狐表中没有这个函数,用代码不知道如何编写,请哪位高手指点
[此贴子已经被作者于2010-3-19 16:59:59编辑过]

--  作者:yangming
--  发布时间:2010/3/19 17:15:00
--  
可以根据身份证号计算年龄

示例

例如年龄列由出生日期计算得出,我们将DataColChanged事件设为:

If e.DataCol.Name = "出生日期" Then
    If
e.DataRow.IsNull("出生日期") Then \'如果没有输入出生日期
       
e.DataRow("年龄") = Nothing \'则清空年龄
    Else
   
    \'否则计算年龄
       
e.DataRow("年龄") = Date.Today.Year - e.DataRow("出生日期").Year

    End If
End If

[此贴子已经被作者于2010-3-19 17:16:45编辑过]

--  作者:cxabc123
--  发布时间:2010/3/19 20:33:00
--  

这个事例计算出的只是虚岁


--  作者:yangming
--  发布时间:2010/3/19 20:42:00
--  
以下是引用cxabc123在2010-3-19 20:33:00的发言:

这个事例计算出的只是虚岁

那你说的周岁是如何计算的?


--  作者:cxabc123
--  发布时间:2010/3/19 20:51:00
--  
就是年对年减,月对月减得出来的年龄
--  作者:cxabc123
--  发布时间:2010/3/19 20:52:00
--  
比如说2009年4月生的人到目前还不到一岁
--  作者:yangming
--  发布时间:2010/3/19 20:55:00
--  
DateDiff(interval,date1,date2)
返回两个日期之间的间隔。
Interval 包含以下设置:
yyyy 年
q    季度
m    月
y    某年的某一天
d    天
w    工作日
ww   周
h    时
n    分
s    秒
--  作者:cxabc123
--  发布时间:2010/3/19 21:00:00
--  
你说的这个我不明白怎么设置,不是狐表里没有函数吗
--  作者:yangming
--  发布时间:2010/3/19 21:01:00
--  
以下是引用cxabc123在2010-3-19 21:00:00的发言:
你说的这个我不明白怎么设置,不是狐表里没有函数吗

有很多函数呢,呵呵
第一种:放在按钮中:
e.Form.Controls("TextBox1").Value = Int(DateDiff("m", CurrentTable.Current("出生年月"), Date.Today)/12)
第二种:表DataColChanged事件

 

If e.DataCol.Name = "出生年月" Then
    If
e.DataRow.IsNull("出生年月") Then \'如果没有输入出生日期
       
e.DataRow("年龄") = Nothing \'则清空年龄
    Else
   
    \'否则计算年龄
       
e.DataRow("年龄") =Int(DateDiff("m", e.DataRow("出生年月"), Date.Today)/12)

    End If  
End If

[此贴子已经被作者于2010-3-19 21:30:34编辑过]

--  作者:cxabc123
--  发布时间:2010/3/19 21:02:00
--  
DateDIFF这个函数没有吧