怎样用Java写一个计算两个日期之间相差天数的GUI程序?

来源:互联网 发布:上海男人 知乎 编辑:程序博客网 时间:2024/04/30 15:09

【代码】

import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.util.*;public class Main extends JFrame implements ActionListener{JTextField[] text={new JTextField(" 请输入开始日期: "),new JTextField(" 请输入截止日期: "),new JTextField("请在上面输入日期!",19)};JTextField[] input={new JTextField(4),new JTextField(2),new JTextField(2),new JTextField(4),new JTextField(2),new JTextField(2)};JTextField[] date={new JTextField("年"),new JTextField("月"),new JTextField("日"), new JTextField("年"),new JTextField("月"),new JTextField("日")};JButton button=new JButton("计算");public static void main(String[] args){Main frm=new Main("计算日期之差");frm.setBounds(100,100,320,135);frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frm.setVisible(true);}Main(String s){setTitle(s);setLayout(new FlowLayout());text[0].setEditable(false);date[0].setEditable(false);date[1].setEditable(false);date[2].setEditable(false);add(text[0]); add(input[0]); add(date[0]); add(input[1]); add(date[1]); add(input[2]); add(date[2]);text[1].setEditable(false);date[3].setEditable(false);date[4].setEditable(false);date[5].setEditable(false);add(text[1]); add(input[3]); add(date[3]); add(input[4]); add(date[4]); add(input[5]); add(date[5]);text[2].setEditable(false);add(text[2]);add(button);button.addActionListener(this);}public void actionPerformed(ActionEvent e){int y,m,d;Time t1=new Time();Time t2=new Time();try{y=Integer.valueOf(input[0].getText());m=Integer.valueOf(input[1].getText());d=Integer.valueOf(input[2].getText());t1.setTime(y,m,d);y=Integer.valueOf(input[3].getText());m=Integer.valueOf(input[4].getText());d=Integer.valueOf(input[5].getText());t2.setTime(y,m,d);long days=t1.timeDifference(t2);text[2].setText("两个日期相差: "+days+" 天");}catch(Exception ex){text[2].setText("数据格式异常");}}}class Time {int year,month,day;void setTime(int y,int m,int d){year=y;month=m;day=d;}long timeDifference(Time t){long t1,t2,days;Calendar c1=Calendar.getInstance();c1.set(year,month-1,day);Calendar c2=Calendar.getInstance();c2.set(t.year,t.month-1,t.day);t1=c1.getTimeInMillis();t2=c2.getTimeInMillis();days=(t2-t1)/(1000*60*60*24);return days;}}


原创粉丝点击