2014-01-28 137 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