# Clock format which recognises %F
proc clockFrmt {time format} {
clock format $time -format [string map {%F {%Y-%m-%d}} $format]
}But I find it also handy as a shorter form for clock with format. ;-)I want as default the current time. This is not really possible. That is why I use NOW as default and created a function to convert the NOW:
# When a proc has no value for thisTime convert it to current time.
proc convertDefaultTime {thisTime} {
if {$thisTime == NOW} {
return [clock seconds]
}
return $thisTime
}Martyn Smith For me I would use the default value NOW and not -1 it makes the code easier to read.Done, thanks for the tip.Then I created the following three procs.
proc getDateStr {{thisTime NOW}} {
set thisTime [convertDefaultTime $thisTime]
clockFrmt $thisTime "%F"
}
proc getDateTimeStr {{thisTime NOW}} {
set thisTime [convertDefaultTime $thisTime]
clockFrmt $thisTime "%FT%T"
}
proc getTimeStr {{thisTime NOW}} {
set thisTime [convertDefaultTime $thisTime]
clockFrmt $thisTime "%T"
}An example usage:proc showMessage {message {onlyTime False} {display True}} {
if {$display} {
if {$onlyTime} {
set moment [getTimeStr]
} else {
set moment [getDateTimeStr]
}
puts [format "%s: %s" $moment $message]
}
}As always: comments, tips and questions are appreciated.
| Category Utilities | [Category Date] | Time |

