Home > Blockchain >  How to calculate age by days
How to calculate age by days

Time:11-15

I know that there are many ways that are already posted here but I couldn't find a way that finds a solution in the way I want.

public void CheckAge(int day, int month, int year) {
        LocalDate today = LocalDate.now();
        this.day = day;
        this.month = month;
        this.year = year;
        int month2 = today.getMonthValue();
        int day2 = today.getDayOfMonth();
        int year2 = today.getYear();
        int AnimalSum = year*365 day*month;
        int todaySum = ((year2*365) (day2*(month2)));
        
          System.out.println("Years: " (year2- year) " Months: "  (((todaySum-AnimalSum)/365)/12) " Days: " (((todaySum-AnimalSum)/365)));
           
    }

I couldn't calculate the days. Thanks.

CodePudding user response:

You can use Duration.

LocalDateTime birthDay = LocalDateTime.of(1974,8, 10,0,0);
LocalDateTime now = LocalDateTime.now();
long days = Duration.between(birthDay, now).toDays();

prints

17263

CodePudding user response:

java.time.Period

A Period in Java is a period of years, months and days. The Period class can calculate the period between two dates.

public void checkAge(int day, int month, int year) {
    LocalDate then = LocalDate.of(year, month, day);
    LocalDate today = LocalDate.now(ZoneId.systemDefault());
    Period age = Period.between(then, today);
    
    System.out.format("Years: %d Months: %d Days: %d%n", age.getYears(), age.getMonths(), age.getDays());
}

Let’s try it out:

    checkAge(24, 11, 1994);

Output when run today:

Years: 26 Months: 11 Days: 21

CodePudding user response:

What you need is a Period it lets you get difference between two dates.

https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Period.html

  •  Tags:  
  • java
  • Related