Foxtable(狐表)用户栏目专家坐堂 → 时间问题,当年的时间如何设置


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

主题:时间问题,当年的时间如何设置

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


加好友 发短信
等级:二尾狐 帖子:559 积分:6288 威望:0 精华:0 注册:2008/9/7 20:15:00
时间问题,当年的时间如何设置  发帖心情 Post By:2021/1/23 19:17:00 [只看该作者]

这里有一段代码:

Dim dt1 As DataTable = DataTables("一分一档")
For Each ary As String() In dt1.GetValues("选科系列|最低分", "选科系列 is not null")
    Dim filter As String = "选科系列='" & ary(0) & "'And 最低分='" & ary(1) & "'"
    Dim filter1 As String = filter & " And 录取年度 = '2021'"
    Dim filter2 As String = filter & " And 录取年度 = '2020'"
    Dim filter3 As String = filter & " And 录取年度 = '2019'"
    Dim filter4 As String = filter & " And 录取年度 = '2018'"
    Dim filter5 As String = filter & " And 录取年度 = '2017'"

Dim fdr1 = dt1.find(filter1)
    If fdr1 IsNot Nothing Then
        dt1.ReplaceFor("本年度排名", fdr1("全省排名"), filter)
    End If
    
    Dim fdr2 = dt1.find(filter2)
    If fdr2 IsNot Nothing Then
        dt1.ReplaceFor("减一年排名", fdr2("全省排名"), filter)
    End If
    
    Dim fdr3 = dt1.find(filter3)
    If fdr3 IsNot Nothing Then
        dt1.ReplaceFor("减二年排名", fdr3("全省排名"), filter)
    End If
    
    Dim fdr4 = dt1.find(filter4)
    If fdr4 IsNot Nothing Then
        dt1.ReplaceFor("减三年排名", fdr4("全省排名"), filter)
    End If

    Dim fdr5 = dt1.find(filter5)
    If fdr5 IsNot Nothing Then
        dt1.ReplaceFor("减四年排名", fdr5("全省排名"), filter)
    End If

Next
红色部分中的2021年、2020年、2019年,我希望用Year(today())这种变量格式来表示。目的就是代码设置好后,到明年甚至后年也就是2022年或2023年不再去改动它。这段代码如何修改?谢谢老师

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(hbfnmxb)时间问题,当年的时间如何设置  发帖心情 Post By:2021/1/23 21:07:00 [只看该作者]

Dim t As Date= Date.Now
For Each ary As String() In dt1.GetValues("选科系列|最低分", "选科系列 is not null")
    Dim filter As String = "选科系列='" & ary(0) & "'And 最低分='" & ary(1) & "'"
    Dim filter1 As String = filter & " And 录取年度 = '" & t.Year & "'"

是不是这样的?

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


加好友 发短信
等级:二尾狐 帖子:559 积分:6288 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2021/1/23 21:32:00 [只看该作者]

谢谢老师!2020年,2019年如何定义呢?


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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(hbfnmxb)谢谢老师!2020年,2019年如何定义呢...  发帖心情 Post By:2021/1/23 21:35:00 [只看该作者]

你是要当年时间然后对应倒退几年?

Dim d1 As Date = d.AddYears(10'加上10年
Dim
 d2 
As Date = d.AddYears(-10'减去10年


Dim t As Date= Date.Now
For Each ary As String() In dt1.GetValues("选科系列|最低分", "选科系列 is not null")
Dim filter As String = "选科系列='" & ary(0) & "'And 最低分='" & ary(1) & "'"
Dim i As Integer
For i = 0 To 4   ‘从当年开始倒退五年
    Dim d2 As Date = t.AddYears(-i) '减去年
    Dim filter1 As String = filter & " And 录取年度 = '" & d2.year & "'"
Next
[此贴子已经被作者于2021/1/23 21:50:50编辑过]

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


加好友 发短信
等级:二尾狐 帖子:559 积分:6288 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2021/1/23 21:53:00 [只看该作者]

当年2021年,需要这个时间,减一年2020年,这个时间也需要,2019年,减二年的,2018年减三年的,还有2017年,减四年。红色代码部分的年度,都需要修改成变量

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


加好友 发短信
等级:二尾狐 帖子:559 积分:6288 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2021/1/23 22:07:00 [只看该作者]

无法在 System.Double 和 System.String 上执行“=”操作
这个错误提示是什么原因?哪里出了问题?

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


加好友 发短信
等级:二尾狐 帖子:559 积分:6288 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2021/1/23 22:28:00 [只看该作者]

Dim t As Date= Date.Now
Dim t1 As Date = t.AddYears(-1'减去1年,即2020年
Dim t2 As Date = t.AddYears(-2'减去2年,即2019年
Dim t3 As Date = t.AddYears(-3'减去3年,即2018年
Dim t4 As Date = t.AddYears(-4'减去4年,即2017年
Dim dt1 As DataTable = DataTables("一分一档")
For Each ary As String() In dt1.GetValues("选科系列|最低分", "选科系列 is not null")
    Dim filter As String = "选科系列='" & ary(0) & "'And 最低分='" & ary(1) & "'"
    Dim filter1 As String = filter & " And 录取年度 = '" & t.Year & "'"
    Dim filter2 As String = filter & " And 录取年度 = '" & t1.Year & "'"
    Dim filter3 As String = filter & " And 录取年度 = '" & t2.Year & "'"
    Dim filter4 As String = filter & " And 录取年度 = '" & t3.Year & "'"
    Dim filter5 As String = filter & " And 录取年度 = '" & t4.Year & "'"

Dim fdr1 = dt1.find(filter1)
    If fdr1 IsNot Nothing Then
        dt1.ReplaceFor("本年度排名", fdr1("全省排名"), filter)
    End If
    
    Dim fdr2 = dt1.find(filter2)
    If fdr2 IsNot Nothing Then
        dt1.ReplaceFor("减一年排名", fdr2("全省排名"), filter)
    End If
    
    Dim fdr3 = dt1.find(filter3)
    If fdr3 IsNot Nothing Then
        dt1.ReplaceFor("减二年排名", fdr3("全省排名"), filter)
    End If
    
    Dim fdr4 = dt1.find(filter4)
    If fdr4 IsNot Nothing Then
        dt1.ReplaceFor("减三年排名", fdr4("全省排名"), filter)
    End If

    Dim fdr5 = dt1.find(filter5)
    If fdr5 IsNot Nothing Then
        dt1.ReplaceFor("减四年排名", fdr5("全省排名"), filter)
    End If

Next

嗯,红色部分代码,这样修改应该可以,老师看一下。对吗?

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(hbfnmxb)无法在 System.Double 和 System.St...  发帖心情 Post By:2021/1/23 22:30:00 [只看该作者]

Dim t As Date= Date.Now
'For Each ary As String() In dt1.GetValues("选科系列|最低分", "选科系列 is not null")
'Dim filter As String = "选科系列='" & ary(0) & "'And 最低分='" & ary(1) & "'"
Dim i As Integer
For i = 0 To 4   '从当年开始倒退五年
    Dim d2 As Date = t.AddYears(-i) '减去年
    Dim filter As String ="ABC"
    Dim filter1 As String = filter & " And 录取年度 = '" & d2.year & "'"
    output.Show(filter1 )
Next
上面代码在命令创库运行
得到结果
ABC And 录取年度 = '2021'
ABC And 录取年度 = '2020'
ABC And 录取年度 = '2019'
ABC And 录取年度 = '2018'
ABC And 录取年度 = '2017'

请自行排查一下 你其他代码

你代码标注的红色部分 换成下面的代码试一试
Dim i As Integer
For i = 0 To 4   '从当年开始倒退五年
    Dim d2 As Date = t.AddYears(-i) '减去年
    Dim filter1 As String = filter & " And 录取年度 = '" & d2.year & "'"
    output.Show(filter1 )
Next
[此贴子已经被作者于2021/1/23 22:31:16编辑过]

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


加好友 发短信
等级:二尾狐 帖子:559 积分:6288 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2021/1/23 22:33:00 [只看该作者]

好的,谢谢老师。我再查一查


 回到顶部