View Full Version : Como calcular o dia de pascoa,carnaval e sexta feira santa em pascal


Sam19
13-11-2007, 20:50
Pois, se alguém tiver uma função que me possa ajudar...

Sam19
13-11-2007, 21:19
Estou a fazer progressos, já consegui calcular o dia da pascoa.Agora tenho de tirar 47 dias a esse valor para conseguir o dia de carnaval.

ex:

carnaval:=pascoa-47 ou seja se a pascoa for no dia 18 o dia de carnaval é negativo,não sei como entrar com o calculo dos meses aki.

kzip
13-11-2007, 23:39
Se o resultado (dia) der negativo, tens de diminuir 1 ao mês e somar a quantidade de dias deste "novo" mês.

O problema (se não estou em erro) é que este "novo" mês deve ser fevereiro. Se for tens de verificar se é ou não ano bissexto (para somares 28 ou 29 dias).

Confuso?:lol:

Mavors
14-11-2007, 13:06
Uma pequena ajuda para saber se o ano é bissexto:

1- Todo ano divisível por 4 é bissexto
2- Todo ano divisível por 100 não é bissexto
3- Mas se o ano for também divisível por 400 é bissexto


em pascal n sei a sintaxe, mas um if em java seria qq coisa do género:

if (((ano / 4 == 0) && (ano / 100 != 0)) || (ano / 400 == 0))
return true;
else
return false;

Rikazzold
14-11-2007, 19:22
Para começar... o carnaval vai ser sempre negativo, pois não há nenhum mês que tenha mais de 31 dias. Por tanto tens de arranjar maneira de dar a volta à coisa :016:
Espero ajudar:


var pascoa,carnaval,mês : integer

...
Repeat
writeln(' Digite o número do mês onde é a Pascoa');
Readln(Mês);
if ( Mês <1 ) or (Mês > 12 then )

writeln(' Por favor introduza um mês válido');

Until (mês >=1) and (mês <=12);

carnaval:=pascoa-47;

if carnaval < -31 then

mes := mes -2

Else

if (carnaval > -31) and ( carnaval < 0 ) then

mes := mes -1




{ se a subtracção der até -30 quer dizer que o Carnaval vai ser no mês anterior. Se der mais que 31 quer dizer que vai ser dois meses antes. Acho que me faço entender. }
{ ora, partimos do princípio que o mês tem 31 dias, ( o Fevereiro tratas tu :-D:016: ) agora vais comparar 31 e o número negativo. Assim consegues ver em que dia do mês calha. Por exemplo,
se a pascoa for no dia 10, 10 - 47 = 37. o mês tem 31. 31 para 37 são 6. Se fiz bem o raciocínio o Carnaval calha no dia 6 :-D
se a pascoa for no dia 20, 30 - 47 = 27. 31 para 27 são 4, Logo calha no dia 4 :X}

Cumps.

g0rTh1k
04-12-2007, 17:46
ja resolveste o problema? Posso disponibilizar-te o meu trabalho de IP que fiz este ano que tem lá essas cenas...