以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 如何查出日期列中缺少的日期 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=128202) |
-- 作者:ZJZK2018 -- 发布时间:2018/11/30 20:11:00 -- 如何查出日期列中缺少的日期 一个监理日记表中有个日期列,应该是不能间断的,如何查出日期列中缺少的日期,如果开始日期为2018-05-20,到今天为止如2018-11-30,其中缺少日期提取出来? |
-- 作者:有点蓝 -- 发布时间:2018/11/30 20:41:00 -- 按日期排序,然后循环每一行判断。比如第一行日期等于【某个日期】,那么第二行的日期应该就等于【某个日期+1】,以此类推。 |
-- 作者:ZJZK2018 -- 发布时间:2018/11/30 22:41:00 -- 下面代码虽已达到效果,但感觉代码有点复杂,能否帮我优化一下 Dim lst As new List(of Date) Dim st As String For Each dt As Row In Tables("表A").Rows If lst.Contains(dt("施工日期")) = False Then lst.Add(dt("施工日期")) End If Next lst.Sort() Dim t As TimeSpan = lst(lst.Count -1) - lst(0) For i As Integer = 0 To t.TotalDays Dim tt As Date = lst(0).AddDays(i) If lst.Contains(tt) = False Then st = st & vbcrlf & tt End If Next e.Form.Controls("Label1").text = st |
-- 作者:有点蓝 -- 发布时间:2018/11/30 23:13:00 -- Tables("表A").Sort = "施工日期" Dim d As Date = Tables("表A").Rows(0)("施工日期") Dim st As String For i As Integer = 1 To Tables("表A").Rows.Count - 1 Dim r As Row = Tables("表A").Rows(i) d = d.AddDays(1) If d < r("施工日期") Then Do While d < r("施工日期") st = st & vbcrlf & d d = d.AddDays(1) Loop End If Next e.Form.Controls("Label1").text = st
|