public class Fecha {
public static void main(String[] args) {
Calendar ahora = Calendar.getInstance();
int hora = ahora.get(Calendar.HOUR_OF_DAY);
int minuto = ahora.get(Calendar.MINUTE);
int mes = ahora.get(Calendar.MONTH)+1;
int dia = ahora.get(Calendar.DAY_OF_MONTH);
int an = ahora.get(Calendar.YEAR);
//primero iniciamos instanciado el método Calendar y creando variables para poder obtener la fecha de nuestra maquina.
//mostrar saludo en consola
if(hora<12){
System.out.println("Buen dia. \n");
}
else if(hora<17){
System.out.println("Buena tarde. \n");
}
else {
System.out.println("Buena noche. \n");
}
//aquí lo que hago es mandar un saludo dependiendo la hora que sea comparo mi variable hora si es menor a 12 entonces imprime su saludo de buen dia, menor a 17 imprime mensaje buena tarde y el ultimo es buena noche, hay que recordad que el formato de la hora es en 24 horas.
//iniciando mensaje mostrando las hora
System.out.print("Son las");
System.out.print(" ");
System.out.print((hora>12)?(hora-12):hora); // 1
System.out.print(" horas ");
//en esta linea mostramos los minutos
if(minuto!=0){
System.out.print(minuto+" ");
System.out.print((minuto!=1)?" minutos ":" minuto "); // 2
//mostramos el dia actual
System.out.print(" del dia " + dia +" de ");
//aquí empiezo a mostrar los mensajes en pantalla si se dan cuenta aqui es donde aplico el condicional ternario en el print que esta en rojo lo que hago es una condicion vamos a explicar e segundo evaluo si minuto es diferente a 1 entonces se imprime minutos de lo contrario se imprime minuto, es sencillo su aplicación
switch(mes){
case 1:
System.out.print("Enero");
break;
case 2:
System.out.print("Febrero");
break;
case 3:
System.out.print("Marzo");
break;
case 4:
System.out.print("Abril");
break;
case 5:
System.out.print("Mayo");
break;
case 6:
System.out.print("Junio");
break;
case 7:
System.out.print("Julio");
break;
case 8:
System.out.print("Agosto");
break;
case 9:
System.out.print("Septiembre");
break;
case 10:
System.out.print("Octubre");
break;
case 11:
System.out.print("Noviembre");
break;
case 12:
System.out.print("Diciembre");
break;
}
//ya casi para teminar lo que hago aqui es ponerle nombre los meses ya que en el metodo Calendar nos devuelve un numero entero aqui con el swich le pongo nombre deben de ir todo los meses pero yo solo le puse 3 por cuestiones que no se alargue la publicacion.
//OJO: el metodo Calendar los meses lo toma de 0 a 11 lo que se hace es sumarle un +1 para que los meses vallan bien.
System.out.println(" de " +an+".");
}
}
}