Foxtable(狐表)用户栏目专家坐堂 → 一个小练习:数字转换为日期


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

主题:一个小练习:数字转换为日期

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


加好友 发短信
等级:幼狐 帖子:177 积分:2437 威望:0 精华:0 注册:2008/9/1 10:46:00
一个小练习:数字转换为日期  发帖心情 Post By:2014/10/18 12:40:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:数字到日期.foxdb


代码如下


数字到日期_DataColChanged

 

If e.DataCol.Name = "数字" Then

    If e.DataRow("数字") Like "########"

        e.DataRow("日期") = DateTime.ParseExact(e.DataRow("数字"),"yyyyMMdd",Nothing)

    Else If e.DataRow("数字") Like "######"

        e.DataRow("日期") = DateTime.ParseExact(e.DataRow("数字"),"yyMMdd",Nothing)

    Else If e.DataRow("数字") Like "##[-]##[-]##"

        e.DataRow("日期") = DateTime.ParseExact(e.DataRow("数字"),"yy-MM-dd",Nothing)

    Else If e.DataRow("数字") Like "##[-]##"

        e.DataRow("日期") = DateTime.ParseExact(e.DataRow("数字"),"MM-dd",Nothing)

    Else If e.DataRow("数字") Like "####"

        e.DataRow("日期") = DateTime.ParseExact(e.DataRow("数字"),"MMdd",Nothing)

    Else

        Return

    End If

End If

[此贴子已经被作者于2014-10-18 12:41:42编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/10/18 12:58:00 [只看该作者]

谢谢分享

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2014/10/18 13:12:00 [只看该作者]

应该加上捕获异常错误代码,否则会报错的。

 

If e.DataCol.Name = "数字" Then
    try
        If e.DataRow("数字") Like "########"
            e.DataRow("日期") = DateTime.ParseExact(e.DataRow("数字"),"yyyyMMdd",Nothing)
        Else If e.DataRow("数字") Like "######"
            e.DataRow("日期") = DateTime.ParseExact(e.DataRow("数字"),"yyMMdd",Nothing)
        Else If e.DataRow("数字") Like "##[-]##[-]##"
            e.DataRow("日期") = DateTime.ParseExact(e.DataRow("数字"),"yy-MM-dd",Nothing)
        Else If e.DataRow("数字") Like "##[-]##"
            e.DataRow("日期") = DateTime.ParseExact(e.DataRow("数字"),"MM-dd",Nothing)
        Else If e.DataRow("数字") Like "####"
            e.DataRow("日期") = DateTime.ParseExact(e.DataRow("数字"),"MMdd",Nothing)
        Else
            Return
        End If
    Catch ex As Exception
    End try
End If

 

 


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


加好友 发短信
等级:狐神 帖子:6842 积分:43288 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2014/10/18 13:16:00 [只看该作者]

不对呀,列录入200041011,日期是不对的。

应该对输入内容作些限制。

[此贴子已经被作者于2014-10-18 13:16:19编辑过]

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


加好友 发短信
等级:狐神 帖子:6842 积分:43288 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2014/10/18 13:18:00 [只看该作者]

代码应该是这样的。

 

If e.DataCol.Name = "数字" Then
    try
        If e.DataRow("数字") Like "########"
            e.DataRow("日期") = DateTime.ParseExact(e.DataRow("数字"),"yyyyMMdd",Nothing)
        Else If e.DataRow("数字") Like "######"
            e.DataRow("日期") = DateTime.ParseExact(e.DataRow("数字"),"yyMMdd",Nothing)
        Else If e.DataRow("数字") Like "##[-]##[-]##"
            e.DataRow("日期") = DateTime.ParseExact(e.DataRow("数字"),"yy-MM-dd",Nothing)
        Else If e.DataRow("数字") Like "##[-]##"
            e.DataRow("日期") = DateTime.ParseExact(e.DataRow("数字"),"MM-dd",Nothing)
        Else If e.DataRow("数字") Like "####"
            e.DataRow("日期") = DateTime.ParseExact(e.DataRow("数字"),"MMdd",Nothing)
        Else
            e.DataRow("日期")=Nothing
        End If
    Catch ex As Exception
    End try
End If


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


加好友 发短信
等级:幼狐 帖子:177 积分:2437 威望:0 精华:0 注册:2008/9/1 10:46:00
  发帖心情 Post By:2014/10/18 13:43:00 [只看该作者]

学习了!

 回到顶部