我正在创建一个项目,在该项目中我应该接受任何人的出生日期。为此,我选择了3个组合框:日期,月份和年份。但是我怎么知道要插入的Datevalid,因为天数不同,不同的月份和年份也不同。

是否有任何现成的GUI component可以从用户那里获取日期?

我正在使用Swing包进行设计。

我的示例代码是

import java.awt.*;
import javax.swing.*;

public class Pro1 extends JFrame
{

    JComboBox  dd, mm, yy;

    JLabel doblbl;

    Container con;

    public Pro1()
    {
        con = getContentPane();

        doblbl = new JLabel("Date of Birth :-");
        doblbl.setHorizontalAlignment(SwingConstants.CENTER);

        doblbl.setFont(new Font("Arial",Font.BOLD,17));
        doblbl.setForeground(Color.blue);

        doblbl.setOpaque(true);
        doblbl.setBackground(new Color(230,180,230));


        dd = new JComboBox();
        mm = new JComboBox();
        yy = new JComboBox();

        for(int i = 1; i<=31; i++)
            dd.addItem("" + i);

        for(int i = 1; i<=12; i++)
            mm.addItem("" + i);

        for(int i = 1960; i<=2014; i++)
            yy.addItem("" + i);


        con.setLayout(null);

        setDefaultCloseOperation(EXIT_ON_CLOSE);

        int i = 120;

        doblbl.setBounds(30,i+=40,270,30);

        int j = 120;

        dd.setBounds(350,j+=40,50,30);
        mm.setBounds(420,j,50,30);
        yy.setBounds(480,j,70,30);

        con.add(doblbl);

        con.add(dd);
        con.add(mm);
        con.add(yy);

        setSize(1500,800);
        setVisible(true);

        con.setBackground(new Color(125,80,140));
    }

    public static void main(String s[])
    {
        Pro1 p1 = new Pro1();

    }
}

最佳答案

您可以使用SimpleDateFormat将日期解析或格式化为dd/MM/yyyy

样例代码:

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
String dateString = "30/02/2014"; // form date string in above format

String formattedDate = sdf.format(sdf.parse(dateString));
if (formattedDate.equals(dateString)) {
    System.out.println("valid date");
} else {
    System.out.println("Invalid date"); // It's an invalid date
}

07-28 12:23