02/03/2010, 15:57
A voir l'erreur, TCL doit prendre un nombre décimal pour un nombre octal.
En fait, c'est normal, car quand le nombre en question est précédé d'un 0 dans expr, il est automatiquement traité comme un nombre octal. D'ou le bug avec 08 09 etc => ce ne sont pas des nombres octaux valides.
Pour moins de problèmes, moi je dis, vaut mieux utiliser incr :
=> Après quelques changements:
En fait, c'est normal, car quand le nombre en question est précédé d'un 0 dans expr, il est automatiquement traité comme un nombre octal. D'ou le bug avec 08 09 etc => ce ne sont pas des nombres octaux valides.
Pour moins de problèmes, moi je dis, vaut mieux utiliser incr :
tcl
set h [clock format [clock seconds] -format "%H"]
set m [clock format [clock seconds] -format "%M"]
set s [clock format [clock seconds] -format "%S"]
if {$dst==1} {
set h [expr $h+$offset+1]
} else {
set h [expr $h+$offset]
}
if {$h==24} { set h 0 }
=> Après quelques changements:
tcl
set h [strftime "%H"]
incr h $offset
incr h $dst
if {$h == 24} { set h 0 }