Foxtable(狐表)用户栏目专家坐堂 → 关于12进制相减的问题


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

主题:关于12进制相减的问题

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


加好友 发短信
等级:幼狐 帖子:120 积分:895 威望:0 精华:0 注册:2017/2/15 20:56:00
关于12进制相减的问题  发帖心情 Post By:2017/3/9 20:30:00 [显示全部帖子]

例如已有  A列 2017.03 B列 2010.02    A-B=7.01   请问老师如何实现。

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


加好友 发短信
等级:幼狐 帖子:120 积分:895 威望:0 精华:0 注册:2017/2/15 20:56:00
回复:(有点色) 弄成日期加减 Dim s1...  发帖心情 Post By:2017/3/9 20:50:00 [显示全部帖子]

老师给的方法我放在
图片点击可在新窗口打开查看此主题相关图片如下:t__h54$i0br@}08v%v7l0g.png
图片点击可在新窗口打开查看
表达式列里实现不了啊。     第一列 - 第二列=第三列

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


加好友 发短信
等级:幼狐 帖子:120 积分:895 威望:0 精华:0 注册:2017/2/15 20:56:00
回复:(有点色)datacolchanged事件 If e.D...  发帖心情 Post By:2017/3/10 8:46:00 [显示全部帖子]

第一列 2017.02 第二列 2002.3 第三列 14.11 第四列若写 3 第五列1.08 为  0.06*3     第六列 16.07   =第三列+第五列  (12进制)  请问老师如何实现?
图片点击可在新窗口打开查看此主题相关图片如下:kkr2u3zbxhv%z@rs$u9if.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:幼狐 帖子:120 积分:895 威望:0 精华:0 注册:2017/2/15 20:56:00
回复:(有点色)如果是相加的问题,参考,自己改造...  发帖心情 Post By:2017/3/10 10:59:00 [显示全部帖子]

谢谢老师  但是不单单是相加的问题  就是  若写1  代表0.06  如何实现老师  2代表1.02   以此类推  如何实现呢?

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


加好友 发短信
等级:幼狐 帖子:120 积分:895 威望:0 精华:0 注册:2017/2/15 20:56:00
回复:(有点色)以下是引用guimingze在2017/3/10 10:...  发帖心情 Post By:2017/3/10 21:26:00 [显示全部帖子]

Dim d1 As Double = 0.6
Dim d2 As Integer = 3 
Dim s As String = format(d1 * d2, "#.00")
Dim ary() As String = s.split(".")
s = ary(0) & "." & format(ary(1) / 10, "00")
msgbox(s)


放在这里的哪呢?
If e.DataCol.name = "第一列" OrElse e.DataCol.name = "第二列" Then
    
    Dim s1 As String = e.DataRow("第一列")
    Dim s2 As String = e.DataRow("第二列")
    Dim a1 As String() = s1.Split(".")
    Dim a2 As String() = s2.Split(".")
    If a1.length = 2 AndAlso a2.length = 2 Then
        Dim d1 As Date = new Date(a1(0), a1(1), 1)
        Dim d2 As Date = new Date(a2(0), a2(1), 1)
        Dim y,m,d As Integer
        DateYMD(d2,d1,y,m,d)
        e.DataRow("第三列") = y & "." & format(m, "00")
    Else
        e.DataRow("第三列") = Nothing
    End If
End If

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


加好友 发短信
等级:幼狐 帖子:120 积分:895 威望:0 精华:0 注册:2017/2/15 20:56:00
回复:(有点蓝)0.06*3 = 1.08,这个怎么算的,如果是...  发帖心情 Post By:2017/3/11 16:21:00 [显示全部帖子]

0.06*3     0.06代表6个月   3代表三次   三个6个月  应该是  1.08   一年零八个月

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


加好友 发短信
等级:幼狐 帖子:120 积分:895 威望:0 精华:0 注册:2017/2/15 20:56:00
回复:(有点蓝)汗,一年不是12个月吗,一年零八个月...  发帖心情 Post By:2017/3/11 16:32:00 [显示全部帖子]

是我们领导要求表述方式不一样  因为 
第一            第二列       第三列   第四列      第五列   第六列
2017.03 2010.02 7.01    3         1.08     8.09
2007.05 2003.07 3.10    4         2.04     6.02
2017.03 2008.06
2017.03 2001.03

按照12进制   第四列代表  3个 6个月   第五列代表  1年零8个月     第六列是第五列加第三列   8年零9个月



所以请问老师该如何写

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


加好友 发短信
等级:幼狐 帖子:120 积分:895 威望:0 精华:0 注册:2017/2/15 20:56:00
回复:(有点蓝)11楼代码有什么问题?  发帖心情 Post By:2017/3/11 21:31:00 [显示全部帖子]

第五列应该是2.00    因为4个0.06 代表 2年    表述为2.00    第六列应该是5.10  第五列也需要12进制啊  所以老师 5列代码该如何写呢?
图片点击可在新窗口打开查看此主题相关图片如下:_mrd27du71b8g`g72sfr8rs.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:幼狐 帖子:120 积分:895 威望:0 精华:0 注册:2017/2/15 20:56:00
回复:(有点色)请说明你的逻辑是什么?3个0.06为什么...  发帖心情 Post By:2017/3/12 22:18:00 [显示全部帖子]

3个0.06为什么     第一个0代表年   第二个0代表十位上的月  比如12月  第二个0就改为1    6代表个位上的月

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


加好友 发短信
等级:幼狐 帖子:120 积分:895 威望:0 精华:0 注册:2017/2/15 20:56:00
回复:(有点色)不明白你的意思,0.06代表6个月,2个...  发帖心情 Post By:2017/3/14 19:53:00 [显示全部帖子]

老师说的对  所以该如何改呢老师   第五列变为12进制
End If
Select Case e.DataCol.name
    Case "第一列","第二列"
        Dim s1 As String = e.DataRow("第一列")
        Dim s2 As String = e.DataRow("第二列")
        Dim a1 As String() = s1.Split(".")
        Dim a2 As String() = s2.Split(".")
        If a1.length = 2 AndAlso a2.length = 2 Then
            Dim d1 As Date = new Date(a1(0), a1(1), 1)
            Dim d2 As Date = new Date(a2(0), a2(1), 1)
            Dim y,m,d As Integer
            DateYMD(d2,d1,y,m,d)
            e.DataRow("第三列") = y & "." & format(m, "00")
        Else
            e.DataRow("第三列") = Nothing
        End If
    Case "第四列"
        Dim d1 As Double = 0.6
        Dim d2 As Integer = val(e.NewValue)
        Dim s As String = format(d1 * d2, "#.00")
        Dim ary() As String = s.split(".")
        s = ary(0) & "." & format(ary(1) / 10, "00")
        e.DataRow("第五列") = s
    Case "第三列","第五列"
        Dim s1 As String = e.DataRow("第三列")
        Dim s2 As String = e.DataRow("第五列")
        Dim a1 As String() = s1.Split(".")
        Dim a2 As String() = s2.Split(".")
        If a1.length = 2 AndAlso a2.length = 2 Then
            Dim d1 As Integer = val(a1(0)) + val(a2(0))
            Dim d2 As Integer = val(a1(1)) + val(a2(1))
            d1 += Math.Floor(d2 / 12)
            d2 = d2 Mod 12
            e.DataRow("第六列") = d1 & "." & Format(d2,"00")
        Else
            e.DataRow("第六列") = Nothing
        End If
        
        
End Select

 回到顶部
总数 19 1 2 下一页