我想根据数据库里用户的生日计算出他的年龄(包含几岁几个月零几天)

taol1214 2008-08-05 03:54:35
我在网上看到这样一段代码,不知道怎么用的。谁能帮帮我。


Public Function BirthdayToAge(ByVal BirthDate As String) As String
'函数功能:由出生日期返回年龄
'入口参数:出生日期
'函数返回:出错或非正常返回为 vbnullstring,否则为年龄的字符串
' <1个月 为 几天
' <1年为 几月零几天
' <6年为 几年零几月
Dim myYear As Integer
Dim myMonth As Integer
Dim myDay As Integer
Dim CurDate As String
CurDate = ServerDate
If Not IsDate(BirthDate) Then
BirthdayToAge = vbNullString
Exit Function
End If

If myYear > Year(CurDate) Then
BirthdayToAge = vbNullString
Exit Function
End If
'千年问题
If CDate(BirthDate) < Format("2029-12-30", "YYYY-MM-DD") And CDate(BirthDate) > Format("2008-12-30", "YYYY-MM-DD") Then
myYear = 100 - Val(Format(BirthDate, "YY")) + Val(Format(CurDate, "YY"))
GoTo MYear
End If
'计算年
If Month(CurDate) >= Month(CDate(BirthDate)) Then
myYear = -DateDiff("YYYY", CurDate, CDate(BirthDate))
Else
myYear = -DateDiff("YYYY", CurDate, CDate(BirthDate)) - 1
End If
MYear:
'计算月
myMonth = -DateDiff("m", CurDate, CDate(BirthDate)) Mod 12
'myDay = -DateDiff("d", Date, CDate(Str(Year(Date)) & "-" & Str(Month(Date)) & "-" & Str(Day(CDate(BirthDate)))))
myDay = Day(CDate(BirthDate)) - Day(CurDate)
If myYear >= 6 Then
If myMonth >= 6 Then
BirthdayToAge = Str(myYear + 1) & "岁"
Else
BirthdayToAge = Str(myYear) & "岁"
End If
Exit Function
End If
If myYear > 0 Then
If myMonth <> 0 Then
BirthdayToAge = Str(myYear) & "岁零" & Str(myMonth) & "个月"
Else
BirthdayToAge = Str(myYear) & "岁整"
End If
Exit Function
End If
If myMonth > 0 Then
If myDay <> 0 Then
BirthdayToAge = Str(myMonth) & "个月零" & Str(myDay) & "天"
Else
BirthdayToAge = Str(myMonth) & "个月整"
End If
Exit Function
End If
BirthdayToAge = Str(myDay) & "天"

End Function
...全文
244 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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