2012-04-20 146 views
1

我下面的代码获取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>" 
+1

你使用的是什么版本的Tcl? – 2012-04-20 18:26:52

回答

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}] 
} 
3

假设你的意思是你要打印起始日期和stop_date之间的每一天,我会用时钟在while循环添加

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天”。 – 2012-04-20 18:26:25

+0

其实必要:11月4日午夜时间东部时间+ 24小时= 11月4日晚上11时 – 2012-04-20 18:32:43

+0

@glennjackman好点!我并不太担心时间增量,原来的海报甚至没有指定他们想要的时间间隔 – TrojanName 2012-04-23 08:24:59

相关问题