| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3009 人关注过本帖
标题:[求助]如何从文本框中输入出生日期及自动求出当前年龄(岁数)?
只看楼主 加入收藏
qwaszwc
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2007-9-29
收藏
 问题点数:0 回复次数:17 
[求助]如何从文本框中输入出生日期及自动求出当前年龄(岁数)?

1,在text1中输入职工出生日期,格式为"年年年年-月月-日日",中间的短横自动生成.
2.在text2中自动显示出年龄,即多大岁数.
自己研究了一下午也弄出来,请提供帮助.不盛感激

搜索更多相关主题的帖子: 岁数 文本 年龄 自动 
2007-10-19 22:57
三断笛
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:31
帖 子:1621
专家分:1617
注 册:2007-5-24
收藏
得分:0 
Text2.Text = Val(Format(CDate(Format(Now, "YYYY-MM-DD")) - CDate(Text1.Text), "YYYY")) - 1900

测试:
输入:1986-05-01
输出:21

[此贴子已经被作者于2007-10-19 23:31:12编辑过]

2007-10-19 23:30
缘吇弹
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:地球
等 级:版主
威 望:43
帖 子:3038
专家分:27
注 册:2007-7-2
收藏
得分:0 
On Error GoTo st
If Len(Text1) = 8 And Mid(Text1, 5, 1) <> "-" And Mid(Text1, 8, 1) <> "-" Then
Text1 = Left(Text1, 4) + "-" + Mid(Text1, 5, 2) + "-" + Right(Text1, 2)
Text2.Text = Format(CDate(Format(Now, "YYYY-MM-DD")) - CDate(Text1.Text), "YYYY") - 1900
ElseIf Not (Len(Text1) = 10 And Mid(Text1, 5, 1) = "-" And Mid(Text1, 8, 1) = "-") Then
st: MsgBox ("职工出生日期输入有误,请检查更正!")
Text1.SetFocus
Text1.SelStart = 0
Text1.SelLength = Len(Text1)
Else
Text1 = Format(CDate(Text1.Text))
Text2.Text = Format(CDate(Format(Now, "YYYY-MM-DD")) - CDate(Text1.Text), "YYYY") - 1900
End If

[此贴子已经被作者于2007-10-20 0:57:56编辑过]


Repeat  Life=Study;Until (death);
2007-10-20 00:56
三断笛
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:31
帖 子:1621
专家分:1617
注 册:2007-5-24
收藏
得分:0 
日期格式问题可以使用MonthView控件,保证输入正确格式的日期
2007-10-20 01:41
qwaszwc
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2007-9-29
收藏
得分:0 
谢谢楼上两位,我试试.

2007-10-20 16:35
qwaszwc
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2007-9-29
收藏
得分:0 
以下是引用缘吇弹在2007-10-20 0:56:47的发言:
On Error GoTo st
If Len(Text1) = 8 And Mid(Text1, 5, 1) <> "-" And Mid(Text1, 8, 1) <> "-" Then
Text1 = Left(Text1, 4) + "-" + Mid(Text1, 5, 2) + "-" + Right(Text1, 2)
Text2.Text = Format(CDate(Format(Now, "YYYY-MM-DD")) - CDate(Text1.Text), "YYYY") - 1900
ElseIf Not (Len(Text1) = 10 And Mid(Text1, 5, 1) = "-" And Mid(Text1, 8, 1) = "-") Then
st: MsgBox ("职工出生日期输入有误,请检查更正!")
Text1.SetFocus
Text1.SelStart = 0
Text1.SelLength = Len(Text1)
Else
Text1 = Format(CDate(Text1.Text))
Text2.Text = Format(CDate(Format(Now, "YYYY-MM-DD")) - CDate(Text1.Text), "YYYY") - 1900
End If

三楼版主太厉害了,一时看不明白,回去慢慢研究.
这段代码是在
private sub text1_change()

end sub
过程中吗?
另:CDate()函数没见过,不知什么意思?


2007-10-20 16:45
缘吇弹
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:地球
等 级:版主
威 望:43
帖 子:3038
专家分:27
注 册:2007-7-2
收藏
得分:0 

最好放在按钮单击过程中,因为你放在private sub text1_change()中,每有变化就激发事件,比较麻烦.
CDate()没看过? 那CInt看过没?


Repeat  Life=Study;Until (death);
2007-10-20 16:53
hyhhd
Rank: 2
等 级:论坛游民
威 望:1
帖 子:502
专家分:44
注 册:2006-5-12
收藏
得分:0 
关键是日期型数据可以进行运算。

2007-10-20 20:45
qwaszwc
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2007-9-29
收藏
得分:0 
以下是引用缘吇弹在2007-10-20 16:53:57的发言:

最好放在按钮单击过程中,因为你放在private sub text1_change()中,每有变化就激发事件,比较麻烦.
CDate()没看过? 那CInt看过没?

关键是text1文本框的输入过程,我在其他应用程序中见过很多,都是直接输入如:"19780512",显示"1978-05-12",不可能再按其他按钮的.
我的教材上只有Date()函数"返回系统当前日期",Int()函数"正数取整",不知前面加上"C"什么意思?


2007-10-21 12:55
刨子头
Rank: 1
等 级:新手上路
威 望:1
帖 子:319
专家分:0
注 册:2007-9-24
收藏
得分:0 
转换!
2007-10-21 13:04
快速回复:[求助]如何从文本框中输入出生日期及自动求出当前年龄(岁数)?
数据加载中...
 
   



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

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