2

这是我的代码

 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

我如何计算正确的日期?

4

2 回答 2

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());
}

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

于 2013-10-02T16:40:36.617 回答
1

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

更改int dayslong days

你的清单!

于 2013-10-02T16:34:26.193 回答