以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 时间问题,当年的时间如何设置 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=160184) |
-- 作者:hbfnmxb -- 发布时间: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年不再去改动它。这段代码如何修改?谢谢老师 |
-- 作者:李孝春 -- 发布时间:2021/1/23 21:07:00 -- 回复:(hbfnmxb)时间问题,当年的时间如何设置 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 -- 发布时间:2021/1/23 21:32:00 -- 谢谢老师!2020年,2019年如何定义呢? |
-- 作者:李孝春 -- 发布时间:2021/1/23 21:35:00 -- 回复:(hbfnmxb)谢谢老师!2020年,2019年如何定义呢... 你是要当年时间然后对应倒退几年? Dim d1 As Date = d.AddYears(10) \'加上10年 Dim d2 As Date = d.AddYears(-10) \'减去10年 [此贴子已经被作者于2021/1/23 21:50:50编辑过]
|
-- 作者:hbfnmxb -- 发布时间:2021/1/23 21:53:00 -- 当年2021年,需要这个时间,减一年2020年,这个时间也需要,2019年,减二年的,2018年减三年的,还有2017年,减四年。红色代码部分的年度,都需要修改成变量 |
-- 作者:hbfnmxb -- 发布时间:2021/1/23 22:07:00 -- 无法在 System.Double 和 System.String 上执行“=”操作 这个错误提示是什么原因?哪里出了问题?
|
-- 作者:hbfnmxb -- 发布时间: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 嗯,红色部分代码,这样修改应该可以,老师看一下。对吗?
|
-- 作者:李孝春 -- 发布时间:2021/1/23 22:30:00 -- 回复:(hbfnmxb)无法在 System.Double 和 System.St... 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 -- 发布时间:2021/1/23 22:33:00 -- 好的,谢谢老师。我再查一查 |