2016-11-21 107 views
-1

我怎麼能從兩個日期得到日期一個日期將來自數據庫,我可以正確回收它,但我怎麼能比較它與當前系統日期? IM能夠爲當前日期存儲到數據庫中使用的setTimestamp功能,但不能使用它,因爲我已經使用jodatime,但無法通過我如何獲得兩個日期之間的日子?

 // TODO add your handling code here: 
     JOptionPane.showMessageDialog(null,"Fine test"); 
     try{ 
      conn = Connect.ConnectDB(); 
      String qw="select bookid,date from borrow"; 
      //String date1="Select Cast ((JulianDay(ToDate) - JulianDay(FromDate)) As Integer)"; 
     pst = conn.prepareStatement(qw); 
rs=pst.executeQuery(); 
while(rs.next()) 
{ 
    String fine=rs.getString("date"); 
    //String today=Timestamp(System.currentTimeMillis() 
    //String date1="Select Cast ((JulianDay() - JulianDay(fine)) As Integer)"; 
    //pst = conn.prepareStatement(date1); 
    //DateTime ret1=formatter.parseDateTime(df.format(dateobj)); 
    // DateTime dt = formatter.parseDateTime(fine); 
//days = Days.daysBetween(dt,dt).getDays(); 
    // int n=ChronoUnit.DAYS.between(fine,fine); 
     JOptionPane.showMessageDialog(null,"Days are"+fine); 
} 
     } 
     catch(Exception e) 
     { 
      JOptionPane.showMessageDialog(null,"Fine error"+e); 
     } 
    }            

    private void formWindowClosed(java.awt.event.WindowEvent evt) {         
     // TODO add your handling code here: 
     try{ 
     conn.commit(); 
     conn.close(); 
     } 
     catch(Exception e) 
     {} 
    }         

回答

-1
public class Main { 
    public static int getDifferenceDays(Date d1, Date d2) { 
     int daysdiff=0; 
     long diff = d2.getTime() - d1.getTime(); 
     long diffDays = diff/(24 * 60 * 60 * 1000)+1; 
     daysdiff = (int) diffDays; 
     return daysdiff; 
    } 

    public static void main(String[] args) throws ParseException { 
     String dateStart = "11/21/2016"; 
     String dateStop = "11/22/2016"; 

     SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy"); 

     Date d1 = format.parse(dateStart); 
     Date d2 = format.parse(dateStop); 

     System.out.println(getDifferenceDays(d1,d2)); 
    } 
} 

得到它比較怎麼樣從milliseconds.one天計算:24 * 60 * 60 * 1000 = 86400000毫秒。

example output: 
11/21/2016 
11/22/2016 
Days between: 2 
+0

讓我試試看@stokhosT –

+0

我必須使用當前系統日期 –

+2

這是不正確。如果第一個日期是在冬天,第二個日期是在夏天,那麼它在任何使用夏令時的地區都會失敗。並非所有的日子都有24小時。最好使用java.time或JodaTime,而不是自己嘗試和實現計算。 –