Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于今天的日期获取准确的年龄VB.Net_Vb.net - Fatal编程技术网

基于今天的日期获取准确的年龄VB.Net

基于今天的日期获取准确的年龄VB.Net,vb.net,Vb.net,我这里有一个vb.net代码,可以获取年龄,但它不打印实际日期 例如:今天是2020年6月4日,我的生日是1998年6月5日。即使正确的年龄是21岁,年龄输出也将是22岁: 请参考下面的代码 Dim birthday As String = "06/05/1998" birthday = Format(DateValue(birthday), "MM/dd/yyyy") Response.Write(DateDiff(DateInterval.Month, DateValue(birthday)

我这里有一个
vb.net
代码,可以获取年龄,但它不打印实际日期 例如:今天是2020年6月4日,我的生日是1998年6月5日。即使正确的年龄是21岁,年龄输出也将是22岁: 请参考下面的代码

Dim birthday As String = "06/05/1998"
birthday = Format(DateValue(birthday), "MM/dd/yyyy")
Response.Write(DateDiff(DateInterval.Month, DateValue(birthday), Now()) / 12)


'Output : 22
私有函数GetAge(dateOfBirth作为日期)作为整数
dateOfBirth=dateOfBirth.Date
Dim age=CInt(DateDiff(DateInterval.Year,dateof birth,Date.Today))
dateOfBirth=dateOfBirth.AddYears(年龄)
如果dateOfBirth>Date.那么今天
年龄-=1
如果结束
回归年龄
端函数

我编辑了我的问题,并将生日改为2020年6月5日。同样的输出你怎么知道
“06/05/1998”
不是1998年5月6日吗?日期和时间值不是它们的字符串表示形式……我只是将其用作示例,但在我的代码中,它的格式为“mm/dd/yyyy”,我编辑了示例代码并添加了格式。
    Dim birthday As Date = CDate("06/04/1998")

    Dim year As Byte = DateDiff(DateInterval.Year, birthday, Now())

    If Now.Month > birthday.Month Then
        year -= 1
    ElseIf Now.Month = birthday.Month And Now.Date > birthday.Date Then
        year -= 1
    End If
    Response.Write(year)