2017-05-04 71 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

相关问题