显示给定开始和结束日期的所有日期

时间:2012-04-20 17:08:24

标签: tcl

我的以下代码提取了2个日期

foreach records $get_times {
        lassign $records start_date stop_date
        puts [clock format [clock scan $start_date] \
            -format {%d %b}]
        puts [clock format [clock scan $stop_date] \
            -format {%d %b}]
}

有没有办法可以显示start_tdate和stop_date之间的所有日期。 类似的东西:

puts "<tr><td>the $start_date</td>the next Date</td><td>....</td><td>the $stop_date</td>"

2 个答案:

答案 0 :(得分:3)

假设您想要在start_date和stop_date之间每天打印,我会在while循环中使用 clock add

set start_date [clock scan {2012-04-20 00:00:00} -format {%Y-%m-%d %H:%M:%S}]
set stop_date [clock scan {2012-04-24 00:00:00}  -format {%Y-%m-%d %H:%M:%S}]
while {$start_date<$stop_date} {
  set start_date [clock add $start_date 1 day]
  puts $start_date
}

答案 1 :(得分:1)

您可以使用clock scan能够使用“英语”时间范围来获取您想要的内容。例如:

set start_ts [clock scan $start_date]
set end_ts [clock scan $stop_date]
for {set current $start_ts} {$current < $end_ts} {set current [clock scan "+1 day" -base $current} {
    puts [clock format $current -format {%d %b}]
}