给我用Java写一个用生日计算年龄的代码
时间: 2023-02-08 09:20:59 浏览: 56
```Java
import java.time.LocalDate;
import java.time.Period;
public class AgeCalculator {
public static void main(String[] args) {
LocalDate birthdate = LocalDate.of(1995, 8, 23);
LocalDate now = LocalDate.now();
Period period = Period.between(birthdate, now);
System.out.printf("年龄是: %d 岁 %d 月 %d 天",
period.getYears(), period.getMonths(), period.getDays());
}
}
```
这是一个使用Java 8的时间库来计算年龄的代码。它使用LocalDate类存储生日,使用Period类计算生日和当前日期之间的时间差。在这个例子中,生日设置为1995年8月23日。你可以替换为你自己的生日。
相关问题
java写一个有异常处理机制的生日计算代码
好的,以下是这段代码:
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.Scanner;
public class BirthdayCalculator {
public static void main(String[] args) {
System.out.print("请输入您的生日日期(格式:yyyy-MM-dd):");
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
try {
LocalDate birthday = LocalDate.parse(input, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
LocalDate today = LocalDate.now();
int age = today.getYear() - birthday.getYear();
if (today.getMonthValue() < birthday.getMonthValue()
|| (today.getMonthValue() == birthday.getMonthValue() && today.getDayOfMonth() < birthday.getDayOfMonth())) {
age--;
}
System.out.println("你的年龄是:" + age);
} catch (DateTimeParseException e) {
System.out.println("输入的日期格式不正确!");
}
}
}
希望能对您有所帮助!
java计算年龄_JAVA根据生日计算年龄(年月日)
可以使用Java8中的新日期时间API来计算年龄。
首先,需要将生日字符串转换为LocalDate对象,然后使用Period.between方法来计算年龄。
以下是示例代码:
```
import java.time.LocalDate;
import java.time.Period;
import java.time.format.DateTimeFormatter;
public class AgeCalculator {
public static void main(String[] args) {
String birthday = "1990-01-01";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate birthdate = LocalDate.parse(birthday, formatter);
LocalDate today = LocalDate.now();
Period age = Period.between(birthdate, today);
System.out.println("Age: " + age.getYears() + " years " + age.getMonths() + " months " + age.getDays() + " days");
}
}
```
输出结果:
```
Age: 31 years 6 months 15 days
```
其中,DateTimeFormatter类用于将生日字符串转换为LocalDate对象,Period类用于计算年龄。getYears()、getMonths()和getDays()方法分别返回年龄的年、月和日部分。
阅读全文