迭代后不存储日期

时间:2015-03-29 14:46:05

标签: android sqlite loops datetime jodatime

我有一个运行一定次数的迭代,这取决于另一个可能变化的值,这就是我使用基于该值迭代的迭代的原因,在该迭代中我每天添加30天一次迭代然后将结果添加到表中。

问题

我最终只是在迭代本身之外添加了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++;
    }

1 个答案:

答案 0 :(得分:0)

终于找出了什么问题。没有。我的室友对我玩了一个恶作剧,刚回到城外旅行,并向我解释他是如何改变getDateDue来执行plusDays(30)以模仿我的代码,以便在我打电话时{{1调用AddPayment它会看起来会起作用,但实际上只要在getDateDue上添加30天,无论我做什么。

<强>摘要

室友是一个屁股,我的代码没有任何问题。对于这个毫无意义的帖子感到抱歉。