以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于计算年龄 EXCEL中=int(2017.02-B1)  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=96688)

--  作者:guimingze
--  发布时间:2017/2/26 13:33:00
--  关于计算年龄 EXCEL中=int(2017.02-B1)
 EXCEL中=int(2017.02-B1)中可以计算出整数的岁   比如 B列是出生日期  格式为1987.09   利用EXCEL可以计算出岁数

 
但是 在编写代码里应该如何写   我的表里面有出生日期,现在增加了个函数列  里面应该怎样表述?    是   int(taday-[出生日期])  么?

--  作者:有点色
--  发布时间:2017/2/26 15:23:00
--  

If e.DataCol.name = "出生日期" Then
    If e.newvalue <> Nothing Then
        Dim y As Integer = e.NewValue.year
        If format(e.newvalue, "MMdd") <= Format(Date.Today, "MMdd") Then
            e.DataRow("年龄") = Date.Today.Year - y
        Else
            e.DataRow("年龄") = Date.Today.Year - y -1
        End If
    Else
        e.DataRow("年龄") = Nothing
    End If
End If

 

http://www.foxtable.com/webhelp/scr/2647.htm


--  作者:guimingze
--  发布时间:2017/2/26 15:24:00
--  
谢谢
--  作者:guimingze
--  发布时间:2017/2/26 15:30:00
--  老师这个没显示呢?
出现图片的内容
图片点击可在新窗口打开查看此主题相关图片如下:j657l}h$)33g0u`$kmpag2.png
图片点击可在新窗口打开查看

--  作者:有点色
--  发布时间:2017/2/26 17:23:00
--  

改成数据列,写到datacolchanged事件去

 

http://www.foxtable.com/webhelp/scr/1445.htm

 


--  作者:guimingze
--  发布时间:2017/2/26 18:07:00
--  
还是不行啊 老师  我的年龄列改成了数据列,但是都没有显示啊?
图片点击可在新窗口打开查看此主题相关图片如下:u`29w)4n)hpo~4qjs46_c.png
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看此主题相关图片如下:8{r$ow780qs1({c)8cj0jc.png
图片点击可在新窗口打开查看


--  作者:有点色
--  发布时间:2017/2/26 20:33:00
--  

重置列

 

http://www.foxtable.com/webhelp/scr/1469.htm

 


--  作者:guimingze
--  发布时间:2017/2/26 21:16:00
--  回复:(有点色)重置列 http://www.foxtabl...
都试过了  还是不行啊  老师  我可以单独给您传一下例子么?
图片点击可在新窗口打开查看此主题相关图片如下:ljnljbk8pi(@o1{fnu0%dk5.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:b7q~p%6y_rzj6w~ea4b04xv.png
图片点击可在新窗口打开查看


--  作者:guimingze
--  发布时间:2017/2/26 21:46:00
--  
e.DataRow("年龄") = Date.Today.Year - e.DataRow("出生年月").Year

老师其实我出生年月一栏肯定有数的  我就想直接用后面之一段公式代码  可以直接用么?

--  作者:有点色
--  发布时间:2017/2/26 22:56:00
--  

代码改一下

 

If e.DataCol.name = "出生年月" Then
    If e.newvalue <> Nothing Then

        Dim d As Date = New Date(e.newvalue.substring(0,4), e.newvalue.substring(5,2), 1)
        Dim y As Integer = d.year
        If format(d, "MMdd") <= Format(Date.Today, "MMdd") Then
            e.DataRow("年龄") = Date.Today.Year - y
        Else
            e.DataRow("年龄") = Date.Today.Year - y -1
        End If
    Else
        e.DataRow("年龄") = Nothing
    End If
End If