Foxtable(狐表)用户栏目专家坐堂 → 日期计算


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

主题:日期计算

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


加好友 发短信
等级:管理员 帖子:47498 积分:251408 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/11/30 8:07:00 [显示全部帖子]

DataColChanged事件:

 

Select Case e.DataCol.Name
    Case "日期A","日期B"
        If e.DataRow.IsNull("日期A") OrElse e.DataRow.IsNull("日期B") Then
            e.DataRow("日期AB列相隔时间") = Nothing
        Else
            Dim y,m,d As Integer
            Dim d1 As Date = e.DataRow("日期A")
            Dim d2 As Date = e.DataRow("日期B")
            y = d2.Year - d1.Year
            m = d2.Month - d1.Month
            d = d2.day - d1.day
            If m = 0 OrElse (m = 0 AndAlso d < 0) Then
                y = y - 1
                m = m + 12
            End If
            If d < 0 Then
                m = m - 1
                d = Date.DaysInMonth(d1.Year,d1.Month) + d
            End If
            Dim s As String
            If y > 0 Then
                s = y & "年"
            End If
            If m > 0 Then
                s = s & m & "个月"
            End If
            If d > 0 Then
                s = s & d & "日"
            End If
            e.DataRow("日期AB列相隔时间") = s      
        End If
End Select

[此贴子已经被作者于2010-11-30 9:10:10编辑过]

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


加好友 发短信
等级:管理员 帖子:47498 积分:251408 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/11/30 11:28:00 [显示全部帖子]

是我手误,将<打成=了,正确的:

 

Select Case e.DataCol.Name
    Case "日期A","日期B"
        If e.DataRow.IsNull("日期A") OrElse e.DataRow.IsNull("日期B") Then
            e.DataRow("日期AB列相隔时间") = Nothing
        Else
            Dim y,m,d As Integer
            Dim d1 As Date = e.DataRow("日期A")
            Dim d2 As Date = e.DataRow("日期B")
            y = d2.Year - d1.Year
            m = d2.Month - d1.Month
            d = d2.day - d1.day
            If m < 0 OrElse (m = 0 AndAlso d < 0) Then
                y = y - 1
                m = m + 12
            End If
            If d < 0 Then
                m = m - 1
                d = Date.DaysInMonth(d1.Year,d1.Month) + d
            End If
            Dim s As String
            If y > 0 Then
                s = y & "年"
            End If
            If m > 0 Then
                s = s & m & "个月"
            End If
            If d > 0 Then
                s = s & d & "日"
            End If
            e.DataRow("日期AB列相隔时间") = s      
        End If
End Select


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


加好友 发短信
等级:管理员 帖子:47498 积分:251408 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/11/30 17:46:00 [显示全部帖子]

呵呵,这怎么加啊,一个月按多少天算呢?

 回到顶部