添加/删除日期代码修复所需的日期

Kar*_*120 0 java

我在这里有这个代码:

public static String AddRemoveDays(String date, int days) throws ParseException
    {
        SimpleDateFormat k = new SimpleDateFormat("yyyyMMdd");
        Date d = k.parse(date);
        d = new Date(d.getTime() + days*86400000);
        String time = k.format(d);

        return time;
    }
Run Code Online (Sandbox Code Playgroud)

它采用String形成"yyyyMMdd",并添加int天.它应该工作,那么日子是负面的 - 然后他会减去日期的日子.当它执行数学运算时,它返回格式化为"yyyyMMdd"的字符串.

至少这是应该做的.它适用于小数字,但如果我尝试添加(或删除),例如,一年(365或-365),它将返回奇怪的日期.

有什么问题?我应该以另一种方式做到这一点吗?

Psh*_*emo 5

    d = new Date(d.getTime() + days*86400000);
Run Code Online (Sandbox Code Playgroud)

如果你将86400000乘以365整数,则不能保持它.将86400000更改为Long

    d = new Date(d.getTime() + days*86400000L);
Run Code Online (Sandbox Code Playgroud)

这没关系.