Foxtable(狐表)用户栏目专家坐堂 → 请帮助解决:从“日期”中提取年、月、月份、季的方法


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

主题:请帮助解决:从“日期”中提取年、月、月份、季的方法

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


加好友 发短信
等级:六尾狐 帖子:1290 积分:9820 威望:0 精华:0 注册:2012/9/19 21:13:00
请帮助解决:从“日期”中提取年、月、月份、季的方法  发帖心情 Post By:2012/10/13 23:28:00 [只看该作者]

请帮助解决:从“日期”中提取年、月、月份、季的方法

要求

[此贴子已经被作者于2020/3/19 19:55:03编辑过]

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


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

好像有点麻烦,代码如下。

 

If e.DataCol.Name = "日期" Then
    If e.DataRow.IsNull("日期") Then
        e.DataRow("年") = Nothing
        e.DataRow("月") = Nothing
        e.DataRow("季") = Nothing
    Else
        Dim d As Date = e.NewValue
        If d.Month = 12 And d.day >= 23 Then
            e.DataRow("年") = d.Year +1
        Else
            e.DataRow("年") = d.Year
        End If
        If d.Day < 23 Then
            e.DataRow("月") = d.Month
        Else
            e.DataRow("月") = (d.Month + 1) Mod 12
        End If
        If d.day > 22 Then
            e.DataRow("季") = DatePart("q",d.AddDays(10))
        Else
            e.DataRow("季") = DatePart("q",d)
        End If
    End If
End If


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


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

代码在表DataColChanged事件中

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目19.table


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


加好友 发短信
等级:六尾狐 帖子:1290 积分:9820 威望:0 精华:0 注册:2012/9/19 21:13:00
  发帖心情 Post By:2012/10/25 18:02:00 [只看该作者]

谢谢,上述代码只有11月23日-11月30日之间“月”显示“0”,不是“12”.其他各月均正确。
图片点击可在新窗口打开查看此主题相关图片如下:132.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2012-11-8 18:18:48编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1290 积分:9820 威望:0 精华:0 注册:2012/9/19 21:13:00
回复:(czy)代码在表DataColChanged事件中 ...  发帖心情 Post By:2012/11/8 20:44:00 [只看该作者]


谢谢,上述代码只有11月23日-11月30日之间“月”显示“0”,不是“12”.其他各月均正确。

图片点击可在新窗口打开查看


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/8 21:14:00 [只看该作者]

 加多一个判断便可。

If e.DataCol.Name = "日期" Then
    If e.DataRow.IsNull("日期") Then
        e.DataRow("年") = Nothing
        e.DataRow("月") = Nothing
        e.DataRow("季") = Nothing
    Else
        Dim d As Date = e.NewValue
        If d.Month = 12 And d.day >= 23 Then
            e.DataRow("年") = d.Year +1
        Else
            e.DataRow("年") = d.Year
        End If
        If d.Day < 23 Then
            e.DataRow("月") = d.Month
        Else If d.Month = 11 Then

            e.DataRow("月") = 12

        Else

            e.DataRow("月") = (d.Month + 1) Mod 12
        End If
        If d.day > 22 Then
            e.DataRow("季") = DatePart("q",d.AddDays(10))
        Else
            e.DataRow("季") = DatePart("q",d)
        End If
    End If
End If



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


加好友 发短信
等级:六尾狐 帖子:1290 积分:9820 威望:0 精华:0 注册:2012/9/19 21:13:00
  发帖心情 Post By:2012/11/8 21:47:00 [只看该作者]

非常谢谢

 回到顶部