如何知道出生日期的年龄?使用Java?

Java在java.time包中提供了一个名为Period的类。这用于计算两个给定日期之间的时间段,例如天,月和年等。

此类的between()方法接受两个LocalDate对象,并找出两个给定日期(年,月和日的数量)之间的时间段,并作为时间段对象返回。

从此,你可以提取的天数,月数和年期间在使用之间getDays()getMonths()和,getYears()分别。

寻找年龄

如果您已经有了一个人的出生日期,请查找年龄-

  • 从用户那里获取出生日期。

  • 将其转换为LocalDate对象。

  • 获取当前日期(作为LocalDate对象)

  • 使用between()方法找到这两个日期之间的时间段-

Period period = Period.between(dateOfBirth, LocalDate.now());
  • 得到几天,几个月,从周期对象常年使用getDays()getMonths()并且,getYears()方法为-

period.getYears();

period.getMonths();

period.getDays();

示例

以下示例从用户读取名称和出生日期,将其转换为LocalDate对象,获取当前日期,找出这两个日期之间的时间段并将其打印为天,月和年。

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.time.Instant;

import java.time.LocalDate;

import java.time.Period;

import java.time.ZoneId;

import java.time.ZonedDateTime;

import java.util.Date;

import java.util.Scanner;

public class CalculatingAge {

   public static Date StringToDate(String dob) throws ParseException{

      //实例化SimpleDateFormat类

      SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");

      //将给定的String解析为Date对象

      Date date = formatter.parse(dob);

      System.out.println("Date object value: "+date);

      return date;

   }

   public static void main(String args[]) throws ParseException {

      //从用户读取姓名和出生日期

      Scanner sc = new Scanner(System.in);

      System.out.println("Enter your name: ");

      String name = sc.next();

      System.out.println("Enter your date of birth (dd-MM-yyyy): ");

      String dob = sc.next();

      //将字符串转换为日期

      SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");

      Date date = formatter.parse(dob);

      //将获取的Date对象转换为LocalDate对象

      Instant instant = date.toInstant();

      ZonedDateTime zone = instant.atZone(ZoneId.systemDefault());

      LocalDate givenDate = zone.toLocalDate();

      //计算给定日期与当前日期之间的差。

      Period period = Period.between(givenDate, LocalDate.now());

      System.out.print("Hello "+name+" your current age is: ");

      System.out.print(period.getYears()+" years "+period.getMonths()+" and "+period.getDays()+" days");

   }

}

输出结果

Enter your name:

Krishna

Enter your date of birth (dd-MM-yyyy):

26-07-1989

Hello Krishna your current age is: 29 years 10 and 5 days

以上是 如何知道出生日期的年龄?使用Java? 的全部内容, 来源链接: utcz.com/z/345405.html

回到顶部