我想计算考虑闰年的确切年龄。我在网络上进行了研究,发现了一些教程,但用闰年精确计算日期差异的日子似乎是[1]:https://answers.yahoo.com/question/index?qid=20110629162003AAof4mT此链接中的一个,即“最佳答案”。我分析代码,但有两个问题:计算考虑闰年的java年龄
1)为什么它写道:“天=天数+ leapYears”下面的“计算日子的生活”部分,
2)最后,我怎么能输入的生日日期的日,月以及年和当日,月,年,并在主要方法中的代码中发现这两个日期在天内的差异?我非常感谢你的帮助。提前致谢 !
PS:为了方便起见,我已经包括来自链接我上面显示的代码:
public class Days {
static int leapYear(int year) {
int leap;
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
leap = 1;
}
else {
leap = 0;
}
return leap;
}
static int daysBefore(int month, int day, int year){
int days = 0;
int monthDays[] = new int[] {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if (leapYear(year) == 1){
monthDays[1] = 29;
}
for (int b = 0; b < month - 1; b++){
days = days + monthDays[b];
}
days = days + day;
return days;
}
public static void main(String[] args) {
//Birth date
int birthMonth = 0;
int birthDay = 0;
int birthYear = 0;
//Due date
int dueMonth = 0;
int dueDay = 0;
int dueYear = 0;
//(1) Calculate years lived
int yearsLived = dueYear - birthYear + 1;
//(2) Calculate leap years
int leapYears = 0;
for (int year = birthYear; year < dueYear+1; year++)
{
leapYears = leapYears + leapYear(year);
}
//(3) Calculate the number of days in your birth year before birth
int daysBeforeBirth = daysBefore(birthMonth, birthDay, birthYear);
//(4) Calculate the number of days remaining in the current year after the due date
int daysRemaining = 365 - daysBefore(dueMonth, dueDay, dueYear);
//Calculate days lived
int days = 0;
days = days + (365 * yearsLived);
days = days + leapYears;
days = days - daysBeforeBirth;
days = days - daysRemaining;
}
}
只需使用日历 –
您是想从第一原则自己计算还是使用现有的JDK类? –
只需使用日期/时间API,而不是日历:) –