Como calcular o dia de pascoa,carnaval e sexta feira santa em pascal

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.
 
Última edição:
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:
 
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;
 
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 :007:
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:007: ) 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.
 
Back
Topo