@Override
      public Object[] next() {

        final Object[] ret = new Object[] { this.i, this.date, this.hour, this.min, this.sec, (int) this.nanos };
        this.i += this.delta;
        this.nanos += this.delta;

        if (this.nanos >= 1000000000L) {
          this.sec += this.nanos / 1000000000L;
          this.nanos %= 1000000000L;

          if (this.sec >= 60) {
            this.min++;
            this.sec %= 60;

            if (this.min == 60) {
              this.hour++;
              this.min = 0;

              if (this.hour == 24) {
                this.hour = 0;
                this.date = this.date.plusDays(1);
              }
            }
          }
        }

        return ret;
      }