Sam19
13-11-2007, 20:50
Pois, se alguém tiver uma função que me possa ajudar...
|
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... |