2012-10-26 30 views
1

我需要从数据库中的值中获取实际日期并减去日期,现在日期是now,数据库中的日期是this.vencimento如何以天为单位显示日期差异?

public boolean getDiasVencido() { 
    boolean diasvencido = false;     

    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); 
    Date datahora = null;  
    try { 
     datahora = (Date) formatter.parse(this.vencimento); 
    } catch (ParseException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    Date now = new Date();  
    if(datahora.compareTo(now) < 0) { 


     long diff = "DATE NOW - DATE FROM DATABASE (this.vencimento)"; 
     long days = diff/(24 * 60 * 60 * 1000); 

     diasvencido = true; 

    } 
    return diasvencido; 
} 

在类设置好的变量:

 public class classetitulo { 

private String documento; 
private String vencimento; 
private Double valor; 
private Double multa; 
private Double juros; 

public classetitulo() {} 

public classetitulo(String documento, String vencimento, Double valor, Double multa, Double juros) { 
    this.documento = documento; 
    this.vencimento = vencimento; 
    this.valor = valor; 
    this.juros = juros; 
    this.multa = multa; 
} 

我不知道太多该怎么做。提前致谢。

+1

为什么不用像'DATEDIFF'这样的SQL语句来查询它呢 –

+0

怎么样?你能告诉我一个例子吗? –

+0

好的,最新的SQLite声明是什么? –

回答

1

试试这个:

this.diasvencido = Integer.parseInt(""+(((now.getTime() - datahora.getTime())/(1000 * 60 * 60 * 24))));

它会得到及时的日期,它会在一天时间给结果天。

+0

谢谢,它工作完美。 –

+0

欢迎将我的答案标记为已答复 –

0

你可以试试这个。这是如何计算有多少天过去了到现在为止:

long now = System.currentTimeMillis(); 
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); 
try { 
    long dataHora = formatter.parse(this.vencimento).getTime(); 
    long duration = Math.abs(now - dataHora); 
    long diff = duration/DateUtils.DAY_IN_MILLIS; 
} 
catch (ParseException e) { 
    e.printStackTrace(); 
} 

DateUtils是因为API第3级,但您总是可以自行计算DateUtils.DAY_IN_MILLIS值。

相关问题