Simples relógio digital
Publicado por Sandro Marcell 08/09/2008
[ Hits: 8.180 ]
Homepage: http://sanmarcell.wordpress.com
Simples script em Tcl/Tk que mostra um relógio digital com data e dia da semana.
#!/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
Compactando arquivos e diretórios simultâneamente
Compactando / descompactando arquivos (Melhorado)
Simples visualizador de arquivos texto
Convertendo escalas termométricas
Criando uma simples lixeira para o usuário [Melhorado]
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Programa fora de escala na tela do pc (34)
Instalação dualboot Windows 11 e Debian 13 (0)
Eu queria adicionar a incon do wifi e deixa transparente no fluxbox no... (0)









