Foxtable(狐表)用户栏目专家坐堂 → 求助:周岁的计算公式


  共有11888人关注过本帖树形打印复制链接

主题:求助:周岁的计算公式

美女呀,离线,留言给我吧!
yangming
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By: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编辑过]

 回到顶部
美女呀,离线,留言给我吧!
yangming
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2010/3/19 20:42:00 [显示全部帖子]

以下是引用cxabc123在2010-3-19 20:33:00的发言:

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

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


 回到顶部
美女呀,离线,留言给我吧!
yangming
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2010/3/19 20:55:00 [显示全部帖子]

DateDiff(interval,date1,date2)
返回两个日期之间的间隔。
Interval 包含以下设置:
yyyy 年
q    季度
m    月
y    某年的某一天
d    天
w    工作日
ww   周
h    时
n    分
s    秒

 回到顶部
美女呀,离线,留言给我吧!
yangming
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By: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编辑过]

 回到顶部
美女呀,离线,留言给我吧!
yangming
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2010/3/19 21:30:00 [显示全部帖子]

看九楼

 回到顶部
美女呀,离线,留言给我吧!
yangming
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2010/3/19 22:28:00 [显示全部帖子]

以下是引用擎天柱在2010-3-19 21:47:00的发言:
我提供一个直接用表达式计算的(真正的周岁,完全是年对年,月对月,日对日)(日期格式是yyyy-mm-dd): Convert(SubString(Convert([入职日期],'System.String'),1,4),System.Int16)-Convert(SubString(Convert([出生日期],'System.String'),1,4),System.Int16)+ IIf(Convert(SubString(Convert([入职日期],'System.String'),6,2),System.Int16)*100+ Convert(SubString(Convert([入职日期],'System.String'),9,2),System.Int16)- (Convert(SubString(Convert([出生日期],'System.String'),6,2),System.Int16)*100+ Convert(SubString(Convert([出生日期],'System.String'),9,2),System.Int16)) < 0,-1,0)

如果要日对日,那就将九楼的代码中的M改成d就可以了,当然后面的12也得改成365,呵呵

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

 回到顶部
美女呀,离线,留言给我吧!
yangming
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2010/3/21 14:15:00 [显示全部帖子]

以下是引用cxabc123在2010-3-21 14:03:00的发言:
狐表中的函数很多,都在什么地方,除了聚合函数,其他函数从哪儿可以找到?
[此贴子已经被作者于2010-3-21 14:03:49编辑过]

好好看看帮助文件开发篇,还有VBScript参考


 回到顶部