Foxtable(狐表)用户栏目专家坐堂 → 日期转年龄


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

主题:日期转年龄

帅哥哟,离线,有人找我吗?
nxqtxwz
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1495 积分:12175 威望:0 精华:0 注册:2013/3/19 16:41:00
日期转年龄  发帖心情 Post By:2020/6/16 8:24:00 [显示全部帖子]

If e.DataCol.name = "学生姓名" Then
    If e.DataRow.isnull("学生姓名")
        e.DataRow("性别")= Nothing     ' ……其它自己补充
        e.DataRow("年龄")= Nothing
        e.DataRow("家长姓名")= Nothing
        e.DataRow("家庭住址")= Nothing
        e.DataRow("联系电话")= Nothing
       
    Else
        Dim dr As DataRow = DataTables("学生名单").Find("学生姓名 ='" & e.DataRow("学生姓名") & "'")
        If dr IsNot Nothing
            e.DataRow("性别")= dr("性别")
           ' e.DataRow("年龄")= dr("出生日期")                 怎么能直接将出生日期转换成年龄呢?
            e.DataRow("家长姓名")= dr("家庭成员姓名")
            e.DataRow("家庭住址")= dr("家庭地址")
            e.DataRow("联系电话")= dr("联系电话")
        End If
    End If
End If

 回到顶部
帅哥哟,离线,有人找我吗?
nxqtxwz
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1495 积分:12175 威望:0 精华:0 注册:2013/3/19 16:41:00
  发帖心情 Post By:2020/6/16 9:06:00 [显示全部帖子]

老师,出错了,请老师看看。

 

If e.DataCol.name = "学生姓名" Then
    If e.DataRow.isnull("学生姓名")
        e.DataRow("性别")= Nothing     ' ……其它自己补充
        e.DataRow("年龄")= Nothing
        e.DataRow("家长姓名")= Nothing
        e.DataRow("家庭住址")= Nothing
        e.DataRow("联系电话")= Nothing
       
    Else
        Dim dr As DataRow = DataTables("学生名单").Find("学生姓名 ='" & e.DataRow("学生姓名") & "'")
        If dr IsNot Nothing
            e.DataRow("性别")= dr("性别")
            Dim tp As TimeSpan = Date.today - CDate("出生日期")
            e.DataRow("年龄") = Math.Round(tp.TotalDays / 365.2422,2)
            e.DataRow("家长姓名")= dr("家庭成员姓名")
            e.DataRow("家庭住址")= dr("家庭地址")
            e.DataRow("联系电话")= dr("联系电话")
        End If
    End If
End If


 回到顶部
帅哥哟,离线,有人找我吗?
nxqtxwz
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1495 积分:12175 威望:0 精华:0 注册:2013/3/19 16:41:00
  发帖心情 Post By:2020/6/16 9:45:00 [显示全部帖子]

老师您好,日期格式不对:总表中是8位数出生日期,怎么转化成符合识别的格式呢。

 Dim tp As TimeSpan = Date.today - CDate(dr("出生日期"))

 

.NET Framework 版本:4.0.30319.1026
Foxtable 版本:2020.5.29.8
错误所在事件:表,晨午检,DataColChanged
详细错误信息:
Exception has been thrown by the target of an invocation.
Conversion from string "20060503" to type 'Date' is not valid.


 回到顶部
帅哥哟,离线,有人找我吗?
nxqtxwz
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1495 积分:12175 威望:0 精华:0 注册:2013/3/19 16:41:00
  发帖心情 Post By:2020/6/16 9:56:00 [显示全部帖子]

以下是引用有点蓝在2020/6/16 9:47:00的发言:
建议日期数据都改为使用“日期时间”型的列,不然以后很多逻辑处理都非常麻烦的
老师说的对,这个表是别人过去建的,出生日期是字符型的,但数据较多,现在改列的格式系统不支持。怎么能将20081201这种格式转换成2008-12-01这样呢?

 回到顶部