Ir ao conteúdo
  • Cadastre-se

Como criar um relógio com data no pascal?


Visitante: Dj.Ágape

Posts recomendados

Visitante: Dj.Ágape
 

Estou tentando fazer um relógio com data, no pascal.

O Relógio esta pronto, mas não estou conseguindo pensar em uma lógica para

adicionar a data...

O relógio ficou assim:


uses crt;
var hora,minuto,segundo : integer;

Begin
textcolor(09);
writeln('R e l o g i o 2 4 H o r a s');
writeln('---------------------------------------');
textcolor(15);
write('Digite a Hora Atual(0 a 23): ');
readln(hora);
while hora > 23 do
begin
textcolor(12);
write('Hora Invalida. Digite Novamente -->(0 a 23): ');
readln(hora);
end;
textcolor(15);
write('Digite o Minuto Atual(0 a 59): ');
readln(minuto);

while minuto > 59 do
begin
textcolor(12);
write('Minuto Invalido. Digite Novamente -->(0 a 59): ');
readln(minuto);
textcolor(15);
end;
segundo := 0;
clrscr;
while (hora < 25) do
begin
textcolor(9);
writeln('R e l o g i o 2 4 H o r a s');
writeln('---------------------------------------');
textcolor(15);

segundo := segundo + 1;

if (segundo = 60) then
begin
segundo := 0;
minuto := minuto + 1;
end;
if (minuto = 60) then
begin
minuto :=0;
segundo :=0;
hora := hora + 1;
end;
if (hora = 24) then
begin
hora := 0;
segundo:=0;
minuto := 0;
end;

if ((segundo < 10) and (minuto < 10) and (hora < 10)) then
begin
writeln('0',hora,':0',minuto,':0',segundo);
end;
if ((segundo >= 10) and (minuto >= 10) and (hora >= 10)) then
begin
writeln(hora,':',minuto,':',segundo);
end;
if ((segundo >= 10) and (minuto < 10) and (hora < 10)) then
begin
writeln('0',hora,':0',minuto,':',segundo);
end;
if ((segundo >= 10) and (minuto < 10) and (hora >= 10)) then
begin
writeln(hora,':0',minuto,':',segundo);
end;
if ((segundo >= 10) and (minuto >= 10) and (hora < 10)) then
begin
writeln('0',hora,':',minuto,':',segundo);
end;
if ((segundo < 10) and (minuto >= 10) and (hora >= 10)) then
begin
writeln(hora,':',minuto,':0',segundo);
end;
if ((segundo < 10) and (minuto >= 10) and (hora < 10)) then
begin
writeln('0',hora,':',minuto,':0',segundo);
end;

if ((segundo < 10) and (minuto < 10) and (hora >= 10)) then
begin
writeln(hora,':0',minuto,':0',segundo);
end;
end;
end.
Program Relogio;

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Ola Dj.Ágape, primeiramente, seja bem vindo ao Fórum do Clube do Hardware.

Primeiramente, sugiro que dê uma arrumada nessa questão da hora, posteriormente poderíamos passar para a data... mas adianto que a data poderia ser inserida da mesma forma que a hora. Simplesmente analisando ela como pertencente ao mesmo grupo... :segundo -> minuto -> hora -> dia -> mês -> ano... ^_^

Vamos à alguns pontos:

1) Posicionamento do relógio

Como é observável, a exibição da hora está sempre aparecendo embaixo da linha anterior, o que dificulta a visualização do mesmo, além de "não ficar bonito". Sugiro que o relógio fique em uma posição fixa.

Sugestão: Vide comando GotoXY() (unit CRT). Uma outra forma seria com o próprio ClrScr.

2) "Velocidade do tempo"

Pelo menos aqui no meu computador/compilador (FPC 2.6.0), a velocidade do relógio não está compatível com a da "realidade". Do programa está bem mais acelerado...

Sugestão: Vide comando Delay() (unit CRT).

3) Interrupção do progrma

No seu programa, você está utilizando:

while (hora < 25) do
begin

Que pelo contexto interno, nunca terá um fim, pois hora nunca chegará a ser "não menor que 25".

Esse trecho é equivalente a:

while True do
begin

Obs.: Como True é sempre True, logo o while "não vai ter fim".

Uma forma interessante para corrigir isso seria assim:

while (True) and (not KeyPressed) do
begin

***

Por enquanto é isso. Qualquer coisa é só postar...

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...