2014-01-28 108 views
-1

我想根據開始日期和結束每30天插入一條記錄,但我無法解析...有人幫我修復代碼?謝謝Android解析插入SQLite的日期

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
     String data_inizio = sdf.format(dateAndTime.getTime());//datepicker1 
     String data_fine = sdf.format(dateAndTime1.getTime());//datepicker2 

     Calendar gcal = Calendar.getInstance(); 
     gcal.setTime(sdf.parse(dateAndTime.getTime())); 
     Calendar gcal1 = Calendar.getInstance(); 
     gcal1.setTime(sdf.parse(data_fine)); 


     for(int i=0; gcal.before(gcal1); i++) { 
      gcal.add(Calendar.DATE, 30); 
         if (gcal.before(gcal1)) { 
          // insert value into Db 
... 
... 
} 
+0

你面對的是什麼問題?在之前或之後插入SQLite或日期比較? – 2014-01-28 20:56:57

+0

我得到了2個日期,但我無法比較每30天插入一條記錄。感謝您的幫助 – user2867831

+0

「不能」是什麼意思?錯誤信息?崩潰?錯誤的結果?電話爆炸? –

回答

0

查看下面的代碼,根據您的要求,我寫了下面的方法來比較兩個日期。此方法將採用字符串格式化日期和持續時間作爲參數。持續時間將以字符串格式化日期的月份,日期或年份添加。

private static boolean isDateValidOrNot(String created_dateTime, int duration) 
        { 
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm"); 
         try { 
          long longNow = System.currentTimeMillis(); 
          Date date = addDay(format.parse(created_dateTime), duration); 
          long difference = longNow - date.getTime(); 
          int Hours = (int) (difference/(1000 * 60 * 60)); 
          int Mins = (int) (difference/(1000*60)) % 60; 
          System.out.println("Hours : "+Hours); 
          System.out.println("Minutes : "+Mins); 
          if(Hours < 0 || Mins < 0) 
            return true; 
          else 
            return false; 
         } catch (ParseException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
         } 
       return false; 
     } 

     public static Date addDay(Date date, int i) { 
     Calendar cal = Calendar.getInstance(); 
     cal.setTime(date); 
     cal.add(Calendar.DAY_OF_YEAR, i); 
     return cal.getTime(); 
    } 
    private static Date addMonth(Date date, int i) { 
     Calendar cal = Calendar.getInstance(); 
     cal.setTime(date); 
     cal.add(Calendar.MONTH, i); 
     return cal.getTime(); 
    } 
    public static Date addYear(Date date, int i) { 
     Calendar cal = Calendar.getInstance(); 
     cal.setTime(date); 
     cal.add(Calendar.YEAR, i); 
     return cal.getTime(); 
    } 
+0

確定您已經理解我的問題?我只需要每隔30天在相關日期插入一條記錄。 – user2867831

+0

我再次問,你在哪裏遇到問題,插入記錄或找出相關日期?僅供參考,我添加了在字符串格式化日期中添加30天的代碼,並檢查它是否通過(之前或之後)。 – 2014-01-28 21:19:37

+0

我的問題是將30天添加到收到「data_inizio」的日期字符串,所以我應該解析添加30天。請閱讀我的代碼以更好地理解。 – user2867831