2012-04-20 163 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

相關問題