添加天数到当前日期

时间:2013-10-02 16:17:40

标签: java date datetime

这是我的代码

 public java.util.Date getDelDate() {
    Date m=new Date();
    System.out.println("ticket date "+ m);
    double d;
    d=(multiply/consumption);
    int days= (int) d;
    System.out.println("del days "+ days);
    m.setTime(m.getTime() + days * 1000 * 60 * 60 * 24);
    System.out.println(m+"Delivery date");
    return m;
}
public java.util.Date getRemDate() {
    Date m1=new Date();
    double d;
    d=(multiply/consumption);
    int days= (int) d-2;
    System.out.println("rem days "+ days);
    m1.setTime(m1.getTime() + days * 1000 * 60 * 60 * 24);
    System.out.println(m1+"Remember date");
    return m1;
    //return remdate;
}

表示multiply = 21consumption = 2的输入值 输出是(正确如下)

ticket date Wed Oct 02 21:43:56 IST 2013
del days 10
Sat Oct 12 21:43:56 IST 2013Delivery date
rem days 8

表示multiply = 35consumption = 1的输入值 输出是(错误如下,显示旧日期)

ticket date Wed Oct 02 21:52:07 IST 2013
del days 35
Wed Sep 18 04:49:20 IST 2013Delivery date
rem days 33
Mon Sep 16 04:49:20 IST 2013Remember date

表示multiply = 1consumption = 0.03的输入值 输出是(错误如下,显示旧日期)

ticket date Wed Oct 02 21:26:56 IST 2013
del days 33
Mon Sep 16 04:24:09 IST 2013Delivery date   //date here is sept?
rem days 31
Sat Sep 14 04:24:09 IST 2013Remember date

我如何计算正确的日期?

2 个答案:

答案 0 :(得分:4)

我建议您使用日历。实现是java的一部分。

要添加天数或减去天数,请使用相同的方法add():

public static void main(String[] args) {
    Calendar calendar = Calendar.getInstance();
    int days = 35;
    // Add days
    calendar.add(Calendar.DAY_OF_MONTH, days);
    System.out.println(calendar.getTime());
}

如果您想减去天数,只需使用负数天。

答案 1 :(得分:1)

你落后于int的最大值,所以你得到一个负值:S

更改int days

long days

Y listo!