Foxtable(狐表)用户栏目专家坐堂 → 求助:如何将日期段自动拆分成每天的日期呢


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

主题:求助:如何将日期段自动拆分成每天的日期呢

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
求助:如何将日期段自动拆分成每天的日期呢  发帖心情 Post By:2016/10/13 16:06:00 [只看该作者]

比如  我想将2014-12-01至2015-12-01这个时间段的时期进行拆分成每天
2014-12-01
2014-12-02
2014-12-03
2014-12-04
2014-12-05
……
2015-12-01
[此贴子已经被作者于2016/10/13 16:07:07编辑过]

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


加好友 发短信
等级:超级版主 帖子:110608 积分:562942 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/13 16:39:00 [只看该作者]


Dim d As Date = new Date(2014,1,1)
Dim days As Integer = d.AddYears(1).AddSeconds(-1).DayOfYear
For i As Integer = 1 To days
    Output.Show(d.AddDays(i))
Next
[此贴子已经被作者于2016/10/13 16:39:48编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)Dim d As Date = new Date(2014,1,1)...  发帖心情 Post By:2016/10/13 16:57:00 [只看该作者]

有点蓝 老师  谢谢先
但是楼上代码运行只能实现一个固定的年份,
对于不固定的未来时间如2015-10-13怎么进行呢?

结合你的思路:
仿写了如下代码 运行后可以任意制定时间段来进行拆分了。

Dim d1 As Date = new Date(2014,1,1)
Dim d2 As Date = new Date(2015,10,13)
Dim t As TimeSpan = d2 - d1
Output.Show(t.Days & "天")
Dim days As Integer = d1.AddYears(1).AddSeconds(-1).DayOfYear
For i As Integer = 1 To t.Days
    Output.Show(d1.AddDays(i))
    
    Dim dr As DataRow = DataTables("表A").AddNew()
    Dim idx As Integer = Tables("表A").FindRow(dr)
    If idx > 0 Then
        Dim r As Row = Tables("表A").Rows(idx-1)
        dr("日期") = d1.AddDays(i)
    End If
Next

但是遇见一个问题 那就是为什么生成的日期中不含初始时间2014-1-1呢?
还麻烦有点蓝老师多多指导下!谢谢!

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


加好友 发短信
等级:超级版主 帖子:110608 积分:562942 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/13 17:24:00 [只看该作者]



For i As Integer = 0 To t.Days

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)For i As Integer = 0 To t.Days  发帖心情 Post By:2016/10/13 21:41:00 [只看该作者]

改用这个之后  直接是新空行  然后是  2014-01-02   2014-01-03…………

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


加好友 发短信
等级:超级版主 帖子:110608 积分:562942 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/13 21:51:00 [只看该作者]

Dim d1 As Date = new Date(2014,1,1)
Dim d2 As Date = new Date(2015,10,13)
Dim t As TimeSpan = d2 - d1
Dim dr As DataRow 
DataTables("表A").StopRedraw
For i As Integer = 0 To t.Days
    dr = DataTables("表A").AddNew()
    dr("日期") = d1.AddDays(i)
Next
DataTables("表A").ResumeRedraw
[此贴子已经被作者于2016/10/13 21:51:47编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1930 积分:17564 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2016/10/13 21:52:00 [只看该作者]

应该把第一个日期改为2013,12,31应该就可以
Dim d1 As Date = new Date(2013,12,31)

 回到顶部