16,554
社区成员
发帖
与我相关
我的任务
分享
Dim 如意生日 As Date = "2017/1/29"
Tex如意年龄.Text = DateDiff(DateInterval.Day, 如意生日, Now)
Public Class Form1
'放一个Button控件'
Private Sub 计算年龄(ByVal 出生日期 As Date)
Dim 当前日期 As Date = Date.Today
Dim 年 As Integer = DateDiff(DateInterval.Year, 出生日期, 当前日期) '求出年差
Dim 最近整月日期 As Date = DateAdd(DateInterval.Year, 年, 出生日期)
If 最近整月日期 > 当前日期 Then
年 -= 1
最近整月日期 = DateAdd(DateInterval.Year, -1, 最近整月日期)
End If
Dim 月 As Integer = DateDiff(DateInterval.Month, 最近整月日期, 当前日期)
最近整月日期 = DateAdd(DateInterval.Month, 月, 最近整月日期)
If 最近整月日期 > 当前日期 Then
月 -= 1
最近整月日期 = DateAdd(DateInterval.Month, -1, 最近整月日期)
End If
Dim 日 As Integer = DateDiff(DateInterval.Day, 最近整月日期, 当前日期)
Label7.Text = "当前日期:" & 当前日期
Label8.Text = "出生日期:" & 出生日期
Label9.Text = "最近整月日期:" & 最近整月日期
Label10.Text = "年龄:" & 年 & "年" & 月 & "月" & 日 & "日"
End Sub
Private Sub Dat吉祥生日_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Dat吉祥生日.ValueChanged
计算年龄(Dat吉祥生日.Value.Date)
End Sub
End Class
不对呀,我再研究一下你的思路
比如今天是 10号 计算是 1岁10月11天 我选11号 他会变成1岁10月10天Public Class Form1
'放一个Button控件'
Private Sub CalculateAge(ByVal birthday As Date)
Dim dtToday As Date = Date.Today
Dim year As Integer = DateDiff(DateInterval.Year, birthday, dtToday)
Dim dt As Date = DateAdd(DateInterval.Year, year, birthday)
If dt > dtToday Then
year -= 1
dt = DateAdd(DateInterval.Year, -1, dt)
End If
Dim month As Integer = DateDiff(DateInterval.Month, dt, dtToday)
dt = DateAdd(DateInterval.Month, month, dt)
If dt > dtToday Then
month -= 1
dt = DateAdd(DateInterval.Month, -1, dt)
End If
Dim day As Integer = DateDiff(DateInterval.Day, dt, dtToday)
Debug.Print(String.Format("今天:{0:yyyy-MM-dd}", dtToday))
Debug.Print(String.Format("生日:{0:yyyy-MM-dd}", birthday))
Debug.Print(String.Format("最近整月日期:{0:yyyy-MM-dd}", dt))
Debug.Print(String.Format("年龄:{0}年{1}月{2}天", year, month, day))
Debug.Print("")
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
CalculateAge("2014-12-01")
CalculateAge("2014-12-31")
End Sub
End Class
今天:2017-04-10
生日:2014-12-01
最近整月日期:2017-04-01
年龄:2年4月9天
今天:2017-04-10
生日:2014-12-31
最近整月日期:2017-03-30
年龄:2年3月11天
int month = dt1.Year * 12 + dt1.Month - dt2.Year * 12 - dt2.Month;
[/quote]int month = dt1.Year * 12 + dt1.Month - dt2.Year * 12 - dt2.Month;