Ir ao conteúdo
  • Cadastre-se
Jose.costa alves

Java Calculo dia das mães/pais

Recommended Posts

O dia das mães é o segundo domingo de maio. O dia dos pais é o segundo domingo de agosto.

O truque aí então é calcular qual o dia da semana do primeiro dia de maio e então ajustar para dois domingos depois

Suponha que você tem uma função que dada uma data, calcula o dia da semana daquela data. Existem vários algoritmos que fazem isso. Algumas linguagens inclusive já tem a função que dada uma data, retorna o número do dia da semana. Nesse fórum aqui, hoje mesmo, eu respondi uma pergunta a respeito disso.

Pois bem, suponha que função retorna 1 para segunda, 2 para terça e assim por diante até o domingo que é 7.

entào para qualquer maio que existiu, o dia 1 de maio caiu numa

dia 1 de maio cai numa...  -------------------> então o dia das mães cai no dia .... 

segunda = 1 .............................................. 14  (o primeiro domingo caiu no dia 7)

terça = 2 .................................................... 13 (o primeiro domingo caiu no dia 6)

quarta = 3................................................... 12 (o primeiro domingo caiu no dia 5)

quinta = 4................................................... 11 (o primeiro domingo caiu no dia 4)

sexta = 5..................................................... 10 (o primeiro domingo caiu no dia 3)

sábado = 6.................................................. 9 (o primeiro domingo caiu no dia 2)

domingo = 7.................................................8 (o primeiro domingo é o próprio dia 1)

 

Então a fórmula é 15 - dia da semana do primeiro dia do mês :)

Portanto a fórmula é só somar ao dia 1 de maio assim 

data( 1 , 5 , 2018) + 14 - diadasemana( data(1,5,2018) ) 


Em Java, como fica ? 

Bom, como vimos, o cálculo do dia da semana de uma data em Java retorna um número entre 1 (segunda) e 7 (domingo),
Vamos usá-la aqui

https://repl.it/@bokomoko/Calcula-dia-das-maes

import java.time.LocalDate;

class Main {

  public static LocalDate diaDasMães( int ano ) {
    LocalDate primeiroDeMaio = LocalDate.of(ano, 5, 1);
    int qdia = primeiroDeMaio.getDayOfWeek().getValue();
    return ( primeiroDeMaio.plusDays(14-qdia));
    
  };
  /* programa principal
  vai calcular que dia cai o dia das mães num certo 
  ano.
  */ 
  public static void main(String[] args) {
    System.out.println("Lista de Datas dos dias da mães desde 2000");
    System.out.println("Ano  Data       Dia da Semana");
    for (int qual_ano = 2000;qual_ano<=2025;qual_ano++){
      LocalDate dia = diaDasMães(qual_ano);
      System.out.println(qual_ano+" "+dia + " "+dia.getDayOfWeek()) ;
    }
  }
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×