ho fatto come dici tu, in pratica è la stessa cosa....ma resta il fatto che il primo record e l'ultimo non viene registrato...ecco il mio metodo:
codice:
 GregorianCalendar dateAndTime = (GregorianCalendar) GregorianCalendar.getInstance();
GregorianCalendar dateAndTime1 = (GregorianCalendar) GregorianCalendar.getInstance();
public void InsRecords(){
    SQLiteDatabase db = mHelper.getWritableDatabase();
    ContentValues cv =newContentValues();

    if(mRadioGroup.getCheckedRadioButtonId()== R.id.radio){
        SimpleDateFormat sdf1 =newSimpleDateFormat("yyyy-MM-dd");

            while (dateAndTime.compareTo(dateAndTime1) <= 0){
             dateAndTime.add(Calendar.MONTH, 1);
           
            if(dateAndTime.getTime().before(dateAndTime1.getTime())){
                 String strDate = sdf1.format(dateAndTime.getTime());
                 cv.put(eTable.DATE, strDate);
                 db.insert(eTable.TABLE_NAME,null, cv);
            }
        }
        db.close();
    }