Calculando o ano bissexto
Essa pequena função imprime o total de dias do mês de fevereiro, caso 28, não é bissexto, caso 29 é.
Cya!
public static void main(String[] args) { int year = 2200; /** Os nomes dos meses */ String[] months = { "Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro" }; int dom[] = { 31, 28, 31, 30, /* jan fev mar abr */ 31, 30, 31, 31, /* mai jun jul ago */ 30, 31, 30, 31 /* set out nov dez */ }; /** Os dias em cada mes */ if (year % 400 == 0) { dom[1] = 29; } else { if(year%4 == 0 && year%100!=0){ dom[1] = 29; } } System.out.println("Resultado: " + dom[1] ); }

Dalton
Curtidas 0
Respostas

Vitor Pamplona
09/04/2009
Mas que função mais enrolada...
import java.util.Calendar; public class Main { public static void main(String[] args) { System.out.println(getMaxDiasFevereiro(2004)); } public static int getMaxDiasFevereiro(int year) { Calendar cal = (Calendar) Calendar.getInstance().clone(); cal.set(Calendar.YEAR, year); cal.set(Calendar.MONTH, 1); // Fevereiro return cal.getActualMaximum(Calendar.DAY_OF_MONTH); } }
GOSTEI 0

Vitor Pamplona
09/04/2009
vcs são realmente estranhos...
/** * @author Lucastex - lucas@javafree.com.br */ import java.util.GregorianCalendar; public class Bissexto { public static void main(String[] args) { System.out.println(new GregorianCalendar().isLeapYear(2004)); } }
GOSTEI 0

Vitor Pamplona
09/04/2009
ueh.. a função é para retornar o número de dias de fevereiro ou para dizer se é bisexto ou não... :P
:o
GOSTEI 0

Vitor Pamplona
09/04/2009
Ahhh tah, entao desculpa.... pega o retorno e ainda faz um if....
heAUIEiuahsiuehAIUehusaeEUiSA
:!:
GOSTEI 0

Vitor Pamplona
09/04/2009
Mesmo assim, 10 a 0 pra nós Lucas!! :D
Isso será uma regra? Algo assim:
:o :o
public boolean torcedorIgualATime() { return dalton.equals(gremio); }
GOSTEI 0

Vitor Pamplona
09/04/2009
hauheiuahiehaiuehiuase
ta ta ta.... entao vc quis fazer um metodo que calculasse qtos dias tem fevereiro
eashueasiehaeiahieu tah bom... mas o topico ainda é pra calcular ano bisexto
aesheasoiuehlfkjsdhroiau
para de ser fresco....
:P
GOSTEI 0

Vitor Pamplona
09/04/2009
É que o babaca do Dalton colocou um título e implementou outro..
Como eu sou nerd eu olhei a implementação e lá tem uma linha assim:
E isso retorna ou 28 ou 29 :D
[]s
System.out.println("Resultado: " + dom[1]);
GOSTEI 0

Vitor Pamplona
09/04/2009
[quote="vfpamp"]É que o babaca do Dalton colocou um título e implementou outro..
Como eu sou nerd eu olhei a implementação e lá tem uma linha assim:
E isso retorna ou 28 ou 29 :D
[]s
O filhote de cruz credo, não sei se tu viu que o método é main, portanto, tem sujeira lá dentro que você como bom programador java, deveri abstrair e olhar para o 'contiúdo' da coisa, ou seja, o algoritmo para calcular o ano bissexto:
System.out.println("Resultado: " + dom[1]);
if (year % 400 == 0) { Bissexto! } else { if(year%4 == 0 && year%100!=0){ Bissexto! } }
System.out.println(new GregorianCalendar().isLeapYear(2004));
GOSTEI 0

Vitor Pamplona
09/04/2009
[quote="aspirante"]
O filhote de cruz credo
:hauhau: :hauhau: :hauhau:
[quote="aspirante"]
Não sei se tu viu que o método é main, portanto, tem sujeira lá dentro que você como bom programador java, deveri abstrair e olhar para o 'contiúdo' da coisa, ou seja, o algoritmo para calcular o ano bissexto:
System.out.println(new GregorianCalendar().isLeapYear(2004));
public static boolean isBissexto(int year) { Calendar cal = Calendar.getInstance(); if (cal instanceof GregorianCalendar) return ((GregorianCalendar)cal).isLeapYear(year); return false; }
public static boolean isBissexto ( int year) { // Ano antes de cristo se adiciona + 1. if ( year < 0 ) return ((year + 1) & 3) == 0; // Antes de 1582 não existe a regra dos 100 anos if ( year < 1582 ) return (year & 3) == 0; // Se for divisível por quatro não por 100. if ((year & 3) == 0 && year % 100 != 0 ) return true; // última chance ser for múltiplo de 400 return ( year % 400 == 0 ); }
GOSTEI 0

Vitor Pamplona
09/04/2009
Para explicar melhor...
Antes de 1582 não existia Calendário Gregoriano, existia o Calendário Juliano que simplesmente considerava bissexto todos os anos múltiplos de 4. Portanto o povão daquela época viveu um 29 de fevereiro de 1500.
Então.. o teu super algorítmo deve considerar isso também.
É claro, depois de 15 de outubro de 1582 surgiram outros calendários como o de Herschel, o Grego Ortodoxo, que é usado na Rússia, e o Spawar
http://astro.nmsu.edu/~lhuber/leaphist.html
http://mindprod.com/jgloss/leapyear.html
http://www.cs.arizona.edu/classes/cs127a/fall04/Quizzes/Geek-exercise-10-23.htm
GOSTEI 0

Vitor Pamplona
09/04/2009
O anta, cada ano divisível por 4 é um ano bissexto.
Entretanto, cada ano divisível por 100 não é um ano bissexto.
Entretanto, todo ano divisível por 400 é um ano bissexto sempre.
Portanto, 1700, 1800, 1900, 2100 e 2200 não são anos bissextos. Porém, 1600, 2000 e 2400 são anos bissextos. Contrapondo, no Calendário Juliano antigo todos os anos divisíveis por 4 eram bissextos.
Se você observar bem, meu algoritmo está correto :!:
:o
GOSTEI 0

Vitor Pamplona
09/04/2009
[quote="aspirante"]
Se você observar bem, meu algoritmo está correto :!:
Não com anos anteriores a 1582
GOSTEI 0

Vitor Pamplona
09/04/2009
[quote="vfpamp"][quote="aspirante"]
Se você observar bem, meu algoritmo está correto :!:
Não com anos anteriores a 1582GOSTEI 0

Vitor Pamplona
09/04/2009
[b] Pah kuanto às vossas desavenças não sei.. mas quero agradecer e a favor ao pessoal... que acabaram de me resolver o problema no trabalho ke tinha pa fazer na aula... Obrigadão... portem-se e continuem ... Abraço []'s
GOSTEI 0

Vitor Pamplona
09/04/2009
O amorrrr é uma dorrrr...
:lol:
A Paz!!
GOSTEI 0

Daniel Carrazzoni
09/04/2009
[quote="wikipedia.org"]
O calendário chinês é o mais antigo registro cronológico de que se tem registro na história. É um calendário que se utiliza tanto do sol quanto da lua. A partir dele surgiu o horóscopo chinês. Na Ásia existem calendários parecidos com o chinês em diversos países.
O calendário chinês é lunissolar. Cada ano possui 12 lunações aquerretando em um total de 354 dias. Para não se perder a sincronia com o ciclo solar(de 365.25 dias), são acrescentados a cada 8 anos 90 dias ao calendário, ou, aproximadamente duas lunações. Desta forma não se perde a sincronia nem que com o cilco solar nem com o lunar.
Este calendário não tem um marco inicial, e se repete em um ciclos menores de 12 anos um ciclo maior, de 60 anos. No ciclo de doze anos cada ano recebe o nome de um animal: zi (rato), chou (boi), yin (tigre), mao (coelho), chen (dragão), si (serpente), wu (cavalo), wei (carneiro), shen (macaco), you (galo), xu (cachorro), hai (porco).
To precisando o algoritimo pra saber se o ano do boi é bisexto! alguem tem ai? ;D
GOSTEI 0

Daniel Carrazzoni
09/04/2009
if (year % 4 == 0 && (year < 1582 || (year % 100 != 0 || year % 400 == 0)))
seria isso?
GOSTEI 0