2012-10-26 4 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의 값을 계산할 수있다 : 이것은 지금까지 통과 얼마나 많은 일을 계산하는 방법이다.

관련 문제