gpt4 book ai didi

java - 计算下一个生日日期时日期跳过一年

转载 作者:行者123 更新时间:2023-12-02 05:24:57 24 4
gpt4 key购买 nike

我使用以下代码来检查一个人的生日:

public class Test_Year {


static int yearsInterval =1;
static int yearsSpecial =0;
static Date dateYearsReg;


public static void main(String[] args){
yearsToNotify(2013, "0001-10-02");
}


public static void yearsToNotify(int yearsElapsedSinceBirth, String dateOfBirth){
Date dt = Convert(d);
Calendar cal = Calendar.getInstance();
cal.setTime(dt);
System.out.println();


yearsSpecial = yearsInterval*(1+(years/yearsInterval));
System.out.println(yearsSpecial);
cal.add(Calendar.YEAR, yearsSpecial);
dateYearsReg = cal.getTime();
System.out.println(dateYearsReg);
}

public static Date Convert(String S){

String dateStr = S;
Date d1 = null ;

try {
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
d1 = f.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}

return d1;
}

}

理想情况下,上面应该给我下一个生日,年份应该是 2014 年,但是我得到的年份是 2015 年。系统日期是今天的日期,即 2014 年 10 月 1 日。有任何提示吗?

在 baove 中,如果我调用如下电话:yearsToNotify(41, "1972-10-17");我得到了正确的值。当我使用年份为 0001 时,结果似乎存在问题。

最佳答案

我相信问题源于这一行

cal.add(Calendar.YEAR, yearsSpecial);

如果我们查看 ADD 的 javadoc,我们会看到它是这样的

public abstract void add(int field,
int amount)

根据日历的规则,向给定日历字段添加或减去指定的时间量。例如,要从日历的当前时间中减去5天,可以通过调用来实现:

相反,您想使用集合:

cal.set(Calendar.YEAR, yearsSpecial);

关于java - 计算下一个生日日期时日期跳过一年,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26138793/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com