2012-10-26 32 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值。

相關問題