Como cada compañía maneja códigos diferentes para averiguar el número de teléfono, se deben seguir los siguientes pasos si se desea obtener el número de la sim card que tiene actualmente nuestro celular.


1. Identificar el operador telefónico del cual se desea conocer el número, esto debido a que cada operador maneja un código diferente, a continuación se muestra el código a marcar dependiendo del operador telefónico (solo en Colombia).
  • Claro: *611#
  • Tigo: *255*4#
  • Movistar: *#61#
  • Avantel: 85532 (solo mensaje de texto)
  • Móvil Éxito: *255*4#
  • Virgin Colombia: *111*3*3#
  • ETB: *#62#
  • Flash Mobile Colombia: *555#
2. Se debe marcar el código (dependiendo del operador) en el celular y simplemente se oprime el botón de llamada (como si se fuese a llamar a cualquier número, pero en este caso se marca el código correspondiente del operador).
En el caso de Avantel tendrás que enviar un mensaje de texto al 85532 con la palabra numero, sin la tilde.

3. Finalmente, se espera un momento y en el celular se recibe un pequeño mensaje con el número de teléfono. Ejemplo: MSISDN: 3151234567.

Listo eso es todo, mucha suerte y ojalá les sirva esta información.

Fuente:
Hola,

Por si no lo saben, cuando se utiliza Spring Boot este por defecto escribe los logs que se generen mediante la librería: java.util.logging, por la consola del IDE, pero si se desea estos logs se pueden escribir en un fichero.


Al igual que la activación del nivel a DEBUG la configuración para activar el fichero de log sigue el mismo principio de configuración de Spring Boot.

Se debe tener en cuenta que estos ficheros que se crean rotan por defecto cada 10Mb.

Las propiedades para indicar el fichero donde escribir los logs son:
  • logging.file
  • logging.path
Nota:
Esto también aplica para SLF4J (Simple Logging Facade for Java proporciona una API de registro Java a través de un simple patrón de fachada. El servidor de registro subyacente se determina en tiempo de implementación y puede ser java.util.logging, log4j, logback o tinylog.​) mediante el import lombok.extern.slf4j.Slf4j;

El ejemplo funcional que se usará a continuación es con logging.file, en el yaml, se debe escribir el siguiente código:

logging:
file.name: /Users/myNameIs/Documents/pruebaLog.log
pattern:
console: "%d [%t] %-5level %logger{36} - %msg%n"
file: "%d [%t] %-5level %logger{36} - %msg%n"
level:
com.m2evorah: INFO
org.springframework: INFO
org.hibernate: ERROR

Ese bloque de código permite registrar en el archivo los logs de tipo INFO y ERROR. Tengan muy en cuenta la indentación (mover un bloque de texto hacia la derecha insertando espacios o tabuladores, para así separarlo del margen izquierdo y distinguirlo mejor del texto adyacente) en el archivo yaml, porque sino les puede fallar.

La salida del archivo pruebaLog.log es:

[com.prueba.comun.programacion.miaplicacion.utilidades.Utilidades]

2021-02-18 13:06:41,928 [http-nio-0.0.0.0-80-exec-4] INFO c.b.c.s.m.c.PrincipalMain - MS Spring Boot, iniciando la ejecucion de la prueba...

Nota:
Si quieren imprimir otro tipo de nivel en el archivo log, solo deben jugar con los parámetros dentro del level.

Listo, cada vez que el Application del Spring Boot se ejecuta (se despliega la aplicación), se crea el archivo externo donde se almacenan los logs en la ruta definida en el yaml, eso es todo, mucha suerte.

Fuentes:

Hola,

Si requieren saber cuantos años tiene una persona a partir de la fecha de nacimiento en Java, teniendo en cuenta los meses y los años, pueden checkear el siguiente código:




import java.time.LocalDate;
import java.time.Period;
import java.time.format.DateTimeFormatter;
import java.util.*;

/**
* Metodo encargado de a partir de una fecha de nacimiento, obtener los años, meses y días que tiene una persona de nacida.
*
* @param pStrFechaNacimiento Define la fecha de nacimiento
* @param pStrFormatoFechaNac Define el formato de la fecha de nacimiento
* @return un entero con la edad de la persona
*/
public static int obtenerEdadExactaDesdeFechaNacimiento(String pStrFechaNacimiento, String pStrFormatoFechaNac) {

DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(pStrFormatoFechaNac);
LocalDate fechaNacimiento = LocalDate.parse(pStrFechaNacimiento, dateTimeFormatter);
LocalDate fechaActual = LocalDate.now();

Period periodo = Period.between(fechaNacimiento, fechaActual);

System.out.printf("La edad de la persona es: %s años, %s meses y %s días",
periodo.getYears(), periodo.getMonths(), periodo.getDays());

return periodo.getYears();

}

En donde el parámetro pStrFechaNacimiento hace referencia a la fecha de nacimiento desde la cual se va a obtener la edad, y el parámetro pStrFormatoFechaNac hace referencia al formato de la fecha de nacimiento, por ejemplo: 

pStrFechaNacimiento = "20/06/1993" y pStrFormatoFechaNac = "dd/MM/yyyy"

También funciona pasandolé los parámetros así:

pStrFechaNacimiento = "1993/06/20" y pStrFormatoFechaNac = "yyyy/MM/dd"

Si se desea, se puede adicionar este metodo dentro de un try catch, para controlar las excepciones que puedan ocurrir de tipo ParseException: Unparseable date.