[Cascavel-pm] GOLFE! (Re: Total de dia de determinado mês)

Breno G. de Oliveira breno em clavis.com.br
Terça Novembro 8 20:17:51 PST 2005


E ai? Vai rolar uma partidinha de golfe?

Seguindo o desafio da thread: "exibir quantos dias tem em cada mês em um
ano qualquer", e me baseando nos modelos de solução já apresentados,
proponho a seguinte entrada:

mes ano

e, como saída, o programa deve retornar o número de dias do mês para
aquele determinado ano. Para datas inválidas (mes > 12, mes < 1 ou ano <
1581), o programa deve retornar -1. Por exemplo:

ENTRADA:
2 1934
SAIDA:
28

ENTRADA:
2 1980
SAIDA:
29

ENTRADA:
11 2000
SAIDA:
30

ENTRADA:
200 1000
SAIDA:
-1

Obs: o ano precisa ser maior que 1581 pq foi quando o calendário
gregoriano entrou em vigor. Além disso, pro ano ser bissexto ele tem que
ser divisivel por 4 mas não por 100, ou ser disivivel em 400 (conforme
já avisaram).

sendo assim, aí vai minha primeira "tacada" (agora percebi o quanto sou
ruim nisso hehehehe):

<code>
($m,$a)=@ARGV;print$a<1581||$m<1||$m>12?-1:$m==2?!($a%4)&&($a%100)||!($a%400)?29:28:$m%2?($m<8?31:30):($m<8?30:31)
</code>

Vai ser fácil pros monges fazerem bem melhor...

[]s

breno

OBS: Pra quem não sabe, o "perl golf" é um jogo em que o menor programa
(com menos caracteres) ganha. Não é EXATAMENTE isso, mas a idéia é essa.
A idéia é ser parecido com o Golfe, em que vc tem que completar um
percurso com o menor número de tacadas, só que no caso o percurso é o
programa e as tacadas são as "tecladas" ;)



Luis Campos de Carvalho wrote:
> --- "Alceu Rodrigues de Freitas Jr." <glasswalk3r em yahoo.com.br> escreveu:
> 
>>Marco Modesto wrote:
>>
>>>Lembre-se que de 400 em 400 anos nao ha ano bissexto, mesmo o ano
>>>sendo divisivel por 4.
>>>Exemplo: Ano 2000.
>>>
>>
>>Essa eu não sabia! Pelo menos que eu me lembre...
>>
>>De qualquer forma, Perl golf à parte, ainda não entendi a necessidade de 
>>reinventar a roda. Existem módulos que lidam com datas que já foram 
>>exaustivamente testados... então qual o problema?
> 
> 
>   Primeiro, pelo esporte: como vamos jogar golfe, se não houver problema para minimizar? ;-)
>   Segundo, por que pode ser que o programador não possa utilizar o módulo, por questões de
> performance ou restrições de footprint de memória... entre outras possíveis razões.
> 
>   Putamplexos!
> 
> --
> Luis Campos de Carvalho
> Member of "São Paulo Perl Mongers",
> Unix SysAdmin & OCP/DBA Oracle
> http://br.geocities.com/monsieur_champs/
> 
> 
> 	
> 
> 
> 
> 	
> 		
> _______________________________________________________ 
> Yahoo! Acesso Grátis: Internet rápida e grátis. 
> Instale o discador agora!
> http://br.acesso.yahoo.com/
> 
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
> 
> 


Mais detalhes sobre a lista de discussão Cascavel-pm