Una forma sencilla y rápida de aprender JAVA, observando y deduciendo cómo se comporta el lenguaje a través de ejemplos prácticos.

Archivo del blog

viernes, 21 de febrero de 2025

Cálculo de la percepción del tiempo de vida.

Esta fórmula intenta mostrar cómo la percepción de los años que nos quedan disminuye a medida que envejecemos, debido a que cada año representa una porción cada vez más pequeña de nuestra vida total. No es que el tiempo vaya más rápido en realidad. Es nuestra percepción la que cambia.

Existe una fórmula conceptual que ilustra cómo la percepción del tiempo restante se reduce con la edad, basada en la proporción de vida ya vivida:

P = (E - A) * (1 - (A / E))

P: Percepción de años de vida restantes. Representa cuántos años de vida se sienten que quedan, teniendo en cuenta la edad actual.
E: Esperanza de vida estimada. Es una estimación de cuántos años se espera que viva una persona, basada en promedios poblacionales.
A: Edad actual. La edad de la persona para la cual se está calculando la percepción del tiempo.


Código Java (PercepcionTiempoVida.java)

package percepciontiempovida;

import java.util.Scanner;

public class PercepcionTiempoVida {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("Calculadora de Percepción del Tiempo de Vida Restante");
        System.out.println("--------------------------------------------------");

        // Obtener la edad actual del usuario
        int edadActual = obtenerEdad(scanner);

        // Obtener la esperanza de vida estimada del usuario
        int esperanzaVida = obtenerEsperanzaVida(scanner, edadActual);

        // Calcular el tiempo real restante
        int tiempoRealRestante = esperanzaVida - edadActual;

        // Calcular el tiempo percibido restante usando la fórmula conceptual
        double tiempoPercibidoRestante = calcularTiempoPercibido(edadActual, esperanzaVida);

        // Mostrar los resultados
        System.out.println("\nResultados:");
        System.out.println("------------------");
        System.out.println("Edad Actual: " + edadActual + " años");
        System.out.println("Esperanza de Vida Estimada: " + esperanzaVida + " años");
        System.out.println("Tiempo Real Restante: " + tiempoRealRestante + " años");
        System.out.printf("Tiempo Percibido Restante (aproximado): %.2f años\n", tiempoPercibidoRestante);
        System.out.println("------------------");
        System.out.println("\nRecuerda: Esta es una ESTIMACIÓN conceptual basada en la proporción de vida vivida.");
        System.out.println("La percepción del tiempo es subjetiva y puede variar.");

        scanner.close();
    }

    // Función para obtener la edad del usuario con validación básica
    public static int obtenerEdad(Scanner scanner) {
        int edad;
        while (true) {
            System.out.print("Introduce tu edad actual (en años): ");
            if (scanner.hasNextInt()) {
                edad = scanner.nextInt();
                if (edad >= 0) {
                    return edad;
                } else {
                    System.out.println("Por favor, introduce una edad válida (no negativa).");
                }
            } else {
                System.out.println("Entrada inválida. Por favor, introduce un número entero.");
                scanner.next(); // Limpiar el buffer del scanner
            }
        }
    }

    // Función para obtener la esperanza de vida con validación básica (mayor que la edad actual)
    public static int obtenerEsperanzaVida(Scanner scanner, int edadActual) {
        int esperanzaVida;
        while (true) {
            System.out.print("Introduce tu esperanza de vida estimada (en años): ");
            if (scanner.hasNextInt()) {
                esperanzaVida = scanner.nextInt();
                if (esperanzaVida > edadActual) {
                    return esperanzaVida;
                } else {
                    System.out.println("La esperanza de vida debe ser mayor que tu edad actual.");
                }
            } else {
                System.out.println("Entrada inválida. Por favor, introduce un número entero.");
                scanner.next(); // Limpiar el buffer del scanner
            }
        }
    }

    // Función para calcular el tiempo percibido restante usando la fórmula conceptual
    public static double calcularTiempoPercibido(int edadActual, int esperanzaVida) {
        if (esperanzaVida <= edadActual) {
            return 0; // Para evitar división por cero o resultados negativos inesperados
        }
        return (double) (esperanzaVida - edadActual) * (1.0 - ((double) edadActual / esperanzaVida));
    }
}


Resultado:

run:
Calculadora de Percepción del Tiempo de Vida Restante
--------------------------------------------------
Introduce tu edad actual (en años): 35
Introduce tu esperanza de vida estimada (en años): 80

Resultados:
------------------
Edad Actual: 35 años
Esperanza de Vida Estimada: 80 años
Tiempo Real Restante: 45 años
Tiempo Percibido Restante (aproximado): 25,31 años
------------------

Recuerda: Esta es una ESTIMACIÓN conceptual basada en la proporción de vida vivida.
La percepción del tiempo es subjetiva y puede variar.
BUILD SUCCESSFUL (total time: 11 seconds)

No hay comentarios:

Publicar un comentario

Con la tecnología de Blogger.