private String toDateString(int y, int m, int d, int h, int mi, int s){
m = Math.max(1, Math.min(12, m));
//最大天数为31天
d = Math.max(1, Math.min(31, d));
switch(m){
case 4:
case 6:
case 9:
case 11:
d = Math.min(30, d); //最大天数为30天
break;
case 2:
//润年
if((y % 4 == 0 && y % 100 != 0) || y % 400 == 0){
d = Math.min(29, d); //最大天数为29天
} else{
d = Math.min(28, d); //最大天数为28天
}
break;
}
h = Math.max(1, Math.min(24, h));
mi = Math.max(1, Math.min(59, mi));
s = Math.max(1, Math.min(59, s));
public class JDateField
extends JTextField
implements Serializable {
/**
* 年月日格式
*/
public static final SimpleDateFormat dateFormat
= new SimpleDateFormat("yyyy-MM-dd");
private JDateDocument doc = new JDateDocument(this,dateFormat);
public JDateField() {
setPreferredSize(new Dimension(100, 25));
setDocument(doc);
super.setHorizontalAlignment(JTextField.CENTER);
}
public JDateField(Date date) {
setPreferredSize(new Dimension(100, 25));
setDocument(doc);
setDate(date);
super.setHorizontalAlignment(JTextField.CENTER);
}
/**
* 取得日期
* @return Date
*/
public Date getDate() {
try {
return dateFormat.parse(this.getText());
}
catch (Exception ex) {
return new Date();
}
}