迭代后不存储日期

Date not storing after iteration

我有一个迭代运行一定次数,具体取决于另一个值,该值可能会有所不同,这就是为什么我使用基于该值进行迭代的迭代,在该迭代中我将日期添加 30 天每次迭代一次,然后将结果添加到 table.

问题

我只是以添加 30 天的第一个实例结束,这在迭代本身之外。这意味着我在迭代中的值没有正确存储,但我不明白为什么。

我检查了 DateTime 操作并显示了 newdate 的值,它显示了正确的日期,因此很可能是日期的存储。但我不知道出了什么问题,它在迭代前起作用,这让我感到困惑。为什么它不在迭代内部执行?有人知道吗?

例如。

InitialDate | 3/29/2015
2ndDate     | 4/28/2015<-- This is what's stored which is pre-iteration
3rdDate     | 5/28/2015<-- This is what it's supposed to be after the iteration
so on and so forth....

预迭代值

    //Date stuff
    String startdate = (String.valueOf(Acc._date));
    DateTimeFormatter formatter = DateTimeFormat.forPattern("MM-dd-yyyy HH:mm:ss");
    DateTime dt = formatter.parseDateTime(startdate);
    DateTime startpoint = new DateTime(dt);
    DateTime whendue = startpoint.plusDays(30);
    DateTime foriteration = whendue;
    String formattedDate = whendue.toString(formatter);

    //Storing initial date
    pay.setDateDue(formattedDate);
    db.AddPayment(pay);

实际迭代

    while (i < j) {

            //Operation for Date Calculation
            DateTime ndt = foriteration.plusDays(30);
            foriteration = ndt;
            String newdate = ndt.toString(formatter);

            //Adding values to PayTable
            pay.setDateDue(newdate);
            db.AddPayment(pay);

            i++;
    }

终于找到问题所在了。没有什么。我的室友对我开了个恶作剧,刚出城回来,向我解释了他如何更改我的 getDateDue 以执行 plusDays(30) 来模仿我的代码,这样当我调用 AddPayment 调用 getDateDue 它看起来会起作用,但实际上无论我做什么,它只会向 startdate 添加 30 天一次。

总结

室友是个混蛋,我的代码没问题。抱歉这个毫无意义 post.