EL género es una letra: M o F.
No debes guardarlo como int:
System.out.println("Proporcione Genero:");
int genero = entrada.nextInt();
Si no como String, o como char
System.out.println("Proporcione Genero:");
char genero = entrada.nextLine().charAt(0);
Luego, para optimizar el código:
Vas a tener que hacer varios IF e IF ELSE, no hagas un System.out con la cadena completa en cada uno de ellos.
Además, la cadena está mal construida, la coma que hay detrás de (año) tendría que ir entre comillas, justo delante de la palabra usted
if (año <= 1945) {
System.out.println("Usted nacio en el"+(año), "usted es un"+(genero)"que pertenece a la generacion Del Silencio");
}
Repetir ese System.out para todos los IF que aún te faltan, es redundante.
En lugar de eso, declara una variable String llamada
generacion y lo que haces en los IF, es determinar su valor. Luego tras terminar los IF, usas esa variable para construir la cadena final.
De hecho, puedes hacer lo mismo con el género, ya que no puedes mostrar directamente la M o la F que te ha de dar el usuario, porque queda feo decirle a alguien:
"Usted es una M.."
(¿Que soy una M...? ¿Este programa me está llamando MIERDA..??) 
Mira, algo parecido a este código que pongo.
Por cierto, fíjate en como he escrito la línea donde pido el año.
Cambio dos cosas respecto a tu código:
1 - No uso la ñ. Se puede usar y funcionará en la mayoría de los casos, pero al ser un carácter que no pertenece al alfabeto inglés, a la larga puedes encontrarte situaciones en la que te de problemas.
Así que conviene evitar la ñ y no usarla ni para nombres de variables, de clases o de métodos.
En una cadena de texto, sí se puede usar.
2 - Mucho más importante. No uso el método nextInt() para pedir el año.
Lo pido usando nextLine(), que retorna un String y automáticamente lo transformo (parseo) en un valor int.
anio = Integer.parseInt(entrada.nextLine());
¿Por qué?
Porque el Scanner, el objeto que usamos para pedir datos por teclado, dará problemas si tras pedir un valor con nextInt(), queremos pedir un valor con nextLine(), que es lo que vamos a necesitar para pedir el char del género.
Es un poco largo de explicar el motivo técnico...
Simplemente recuerda que cuando hagas un programa Java, si SOLO vas a pedir valores numéricos, puedes usar nextInt() sin problemas.
Pero si en el mismo programa vas a pedir valores numéricos(int, double, float...) y también de texto(String o char), entonces mejor pedir todos los valores con el método nextLine(), y luego transformarlo a int, a double, o a lo que se necesite.
De lo contrario dará problemas. Tu mismo puedes comprobarlo si quieres, cuando ya tengas el programa terminado y funcionando. Prueba a pedir el año con nextInt() y verás como luego no te será posible pedir el género para obtener un char.
Bueno, te dejo aquí el código de como podría hacerse para que quede más optimizado.
Solo falta completar los ELSE IF para determinar la generación según el año introducido.
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
//Principales variables del programa
int anio = 0;
String genero = "", generacion = "";
System.out.println("Proporcione año de nacimiento:");
anio = Integer.parseInt(entrada.nextLine());
System.out.println("Proporcione Genero:");
char gen = entrada.nextLine().charAt(0);
//Determinamos el Genero
if (gen == 'M' || gen == 'm')
genero = "Masculino";
else if (gen == 'F' || gen == 'f')
genero = "Femenino";
else
genero = "Otro";
//A continuacion determinamos la generacion
if (anio <= 1945)
generacion = "Del Silencio";
else if (anio >= 1946 && anio <= 1964)
generacion = "Baby Boomer";
//faltan el resto de if else...
//Por último, construimos cadena de mensaje final
System.out.println("Usted nacio en el " + anio + ", usted es un " + genero + " que pertenece a la generacion " + generacion);
}