Simples relógio digital

Publicado por Sandro Marcell 08/09/2008

[ Hits: 7.913 ]

Homepage: http://sanmarcell.wordpress.com

Download tkclock.tcl




Simples script em Tcl/Tk que mostra um relógio digital com data e dia da semana.

  



Esconder código-fonte

#!/usr/bin/wish
#
# Simples relogio digital (com data) em Tcl/Tk.
# Sandro Marcell (sandro_marcell@yahoo.com.br)
#
# Obs.:
# - As horas sao mostradas no formato 24h;
# - O relogio ainda apita!
#
# Mais detalhes: 
# man tk
# tclhelp

# Codificacao padrao:
encoding system utf-8

# Procedimento principal que formata a data, hora e dia:
proc _Principal_ {} {
   # Dia da semana por extenso:
   switch [clock format [clock seconds] -format "%w"] {
      0 { set dia "Domingo"       }
      1 { set dia "Segunda-feira" }
      2 { set dia "Terça-feira"   }
      3 { set dia "Quarta-feira"  }
      4 { set dia "Quinta-feira"  }
      5 { set dia "Sexta-feira"   }
      6 { set dia "Sábado"       }
   }
   # Cores diferentes para cada dia:
   switch -glob $dia {
      Dom*  { set cor "#31a90b" }
      Seg*  { set cor "#be1b0b" }
      Ter*  { set cor "#ebe80b" }
      Qua*  { set cor "#f8700b" }
      Qui*  { set cor "#1c70e3" }
      Sex*  { set cor "#b6a8c1" }
      Sáb*  { set cor "#d8c908" }
   }
   # Mes por extenso:
   switch [clock format [clock seconds] -format "%m"] {
      01 { set m "Janeiro"   }
      02 { set m "Fevereiro" }
      03 { set m "Março"     }
      04 { set m "Abril"     }
      05 { set m "Maio"      }
      06 { set m "Junho"     }
      07 { set m "Julho"     }
      08 { set m "Agosto"    }
      09 { set m "Setembro"  }
      10 { set m "Outubro"   }
      11 { set m "Novembro"  }
      12 { set m "Dezembro"  }
   }
   # Data:
   set d [clock format [clock seconds] -format "%d"]
   # Ano:
   set a [clock format [clock seconds] -format "%Y"]
   # Hora
   set h [clock format [clock seconds] -format "%T"]

   # Reconfigurando label's:
   .clock configure -text $h -font {helvetica 14 bold}
   .data configure -text "$d de $m de $a"
   .dia configure -text $dia -background $cor 
   
   # Se for HH:MM:SS em ponto, apite!
   if {[regexp {(([01][0-9]|2[0-3]):00:00)} $h]} { puts "\a" } 
   
   # Aguardar 1 segundo antes de atualizar tudo:
   after 1000 _Principal_
}

# Montando as janelas (widgets)
tk_setPalette "#000000"
wm title . "TkClock"
wm minsize . 200 80
wm maxsize . 200 80

# Mostrando relogio:
label .clock -text {}
# Montando o widget label:
pack .clock -side top -fill x -expand yes
# Mostrando data:
label .data -text {}
pack .data -side bottom -fill x -expand yes
# Mostrando dia
label .dia -text {}
pack .dia -side bottom -fill x -expand yes

# Chamando procedimento:
_Principal_

# Fechando janela (tecle <ENTER>):
bind all <Return> { 
   after cancel _Principal_ 
   destroy . 
   exit 
}
# Fim

Scripts recomendados

Compactando arquivos e diretórios simultâneamente

Gerando senhas aleatórias

Criando uma simples lixeira para o usuário [Melhorado]

Compactando / descompactando arquivos (Melhorado)

Simples visualizador de arquivos texto


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts