2017-05-04 50 views
-1

我有一個包含用戶的生日用戶的MySQL表。 我已經將sql的日期存儲爲變量DateOfBirth。 現在,我想成立一​​個名爲GameDateChooser 15年過去的生日 ,最大可選日期爲當前日期jDateChooser的最小可選日期。 我試圖尋找其他的文章,但他們沒有回答我的問題設定最低可選日期15年過去的生日(從MySQL),最大爲當前日期

+1

見http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple- SQL查詢 – Strawberry

回答

0

從Java文檔有setSelectableDateRange,它可以接受兩個日期,最小值和最大值:

public void setSelectableDateRange(java.util.Date min, java.util.Date max) 

你的情況,你需要的東西是這樣的:

Calendar cal = Calendar.getInstance(); 
cal.add(Calendar.YEAR, -15);//15 year before 
Date min = cal.getTime(); 

Date max = new Date();//actual date 

JDateChooser jDateChooser = new JDateChooser(); 
//set your dates in your JDateChooser 
jDateChooser.setSelectableDateRange(min, max); 
0

即使setSelectableDateRange()需要兩個老派Date對象,我仍傾向於使用現代類的年齡計算,而不是過時Calendar

LocalDate dateOfBirth = LocalDate.of(1959, Month.FEBRUARY, 15); 
    Instant min = dateOfBirth.plusYears(15) 
      .atStartOfDay(ZoneId.systemDefault()) 
      .toInstant(); 
    jDateChooser.setSelectableDateRange(Date.from(min), new Date()); 

LocalDateInstant都內置了與Java 8和更高版本,並且也可用於Java 6和7 Date.from(Instant)就是Java 8和更高版本,對Java 6和7還有其它轉換選項。一個全新的MySQL JDBC驅動程序應該能夠從數據庫中檢索LocalDate

相關問題