Simples relógio digital

Publicado por Sandro Marcell 08/09/2008

[ Hits: 7.926 ]

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

Simples visualizador de arquivos texto

Convertendo escalas termométricas

Compactando arquivos e diretórios simultâneamente

Gerando senhas aleatórias

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


  

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