Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Compiladores Ex 3

Olá

Senhores, vou ser sincero a voces, pode até ser algo bem simples, mas nao consegui entender a sintaxe abaixo para verificar se o mês de fev tem 29 dias: if((ano % 400 == 0) || ((ano % 4 == 0) && (ano % 100 != 0))){ ultimoDiaDoMes = 29;

pelo q entendi significa assim: "se o resto da divisao do ano por 400 é igual a zero OU o resto da divisao do ano por 4 é igual a zero E o resto da divisao do ano por 100 NÃO É igual a zero, o ultimoDiaDoMes é igual a 29"

Li esse IF corretamente? Se sim, pergunto: por que dividir por 400 e depois por 100?

2 respostas

João,

Fevereiro tem 29 dias quando o ano é bissexto, ok? A tua interpretação do algoritmo está correta, veja abaixo um passo a passo explicativo:

Para determinar se um ano é um ano bissexto, siga estas etapas:

  1. Se o ano for divisível por 4, vá para a etapa 2. Caso contrário, vá para a etapa 5.
  2. Se o ano for divisível por 100, vá para a etapa 3. Caso contrário, vá para a etapa 4.
  3. Se o ano for divisível por 400, vá para a etapa 4. Caso contrário, vá para a etapa 5.
  4. O ano é bissexto (ele tem 366 dias).
  5. O ano não é um ano bissexto (ele tem 365 dias).

Fonte: https://support.microsoft.com/pt-br/kb/214019

Espero tê-lo ajudado!

solução!

OK..Obrigado Rafael.