Java - Dia de cumpleaños

 
Vista:
sin imagen de perfil

Dia de cumpleaños

Publicado por Javier (5 intervenciones) el 08/01/2024 15:53:33
Esto haciendo una aplicacion que te da el dia de la semana en que naciste
es decir el programa pide dia mes y año(1900-2023)
y te dice por ejemplo que naciste en jueves, y ahora no se como hacer para que me diga todos los jueves que cae esa fecha por ejemplo que cae 12-1-1982 12-1-1995 12-1-2000 esto que cuando me da jueves es un string
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Dia de cumpleaños

Publicado por Kabuto (1381 intervenciones) el 09/01/2024 11:05:43
Si estás trabajando con LocalDate, una vez tienes la fecha de nacimiento puedes hacer un bucle desde 1900 hasta 2023 y en cada iteración obtener una copia de esa fecha pero cambiando el año.
De esa copia, obtienes el día de la semana y lo comparas con el de la fecha de nacimiento. Y si coinciden, pues imprimes esa copia en pantalla y pasas a la siguiente.

Te dejo un ejemplo simple, sin validar si nos dan fechas válidas y mostrando las fechas con el formato por defecto.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import java.time.LocalDate;
import java.util.Scanner;
 
public class Aniversario {
 
	public static void main(String[] args) {
 
		Scanner teclado = new Scanner(System.in);
		final String[] DIAS = new String[] {"LUNES","MARTES","MIERCOLES","JUEVES",
				"VIERNES","SABADO","DOMINGO"};
 
		System.out.println("Dime tu fecha nacimiento.");
		System.out.print("Dia: ");
		int dia = teclado.nextInt();
		System.out.print("Mes: ");
		int mes = teclado.nextInt();
		System.out.print("Año: ");
		int anio = teclado.nextInt();
 
		LocalDate fecha = LocalDate.of(anio, mes, dia);
 
		int diaNacido = fecha.getDayOfWeek().getValue() - 1;
 
 
		System.out.println("\nNaciste un " + DIAS[diaNacido]);
 
		System.out.println("Lista de fechas que coinciden con ese dia:");
 
		for (int i = 1900; i < 2024; i++) {
			LocalDate otraFecha = fecha.withYear(i);
			if (otraFecha.getDayOfWeek().equals(fecha.getDayOfWeek()))
				System.out.println(otraFecha.toString());
		}
 
		teclado.close();
		System.out.println("\n\t\tFIN DE PROGRAMA");
 
	}
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar