博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第4次作业类测试代码+105032014158+余超勇
阅读量:6478 次
发布时间:2019-06-23

本文共 19293 字,大约阅读时间需要 64 分钟。

1、类图:

2、界面和相应的功能。

(1)实现lastdate方法

1 public String LastDate(int year, int month, int day) 2     { 3         String lastdate = null; 4         if(month==3)  //2月 5         { 6             if(((year%4==0&&year%100!=0)||year%400==0)) //闰年时的2月 7             {         8                     if(day==1) 9                     {10                         day=29;11                         month--;12                     }13                     else14                     {15                         day--;16                     }17             }18             else19             {20                 if(day==1)21                 {22                     day=28;23                     month--;24                 }25                 else26                 {27                     day--;28                 }29             }30         }31         else if(month==1)  //12月份32         {33             if(day==1)34             {35                 year--;    36                 day=31;37                 month=12;38             }39             else40             {41                 day--;42             }43         }44         //一般月份45         else46         {47             if(month==5||month==7||month==10||month==12)48             {        49                 if(day==1)50                 {51                     month--;52                     day=30;53                 }54                 else55                 {56                     day--;57                 }58             }59             else60             {61                 if(day==1)62                 {63                     month--;64                     day=31;65                 }66                 else67                 {68                     day--;69                 }70             }71         }72         lastdate =  "" + year + "年" + "" + month + "" + "月" + day + "日"  ;73         return lastdate;74     }

(2)实现weekday方法

1 public int weekDay(int year, int month, int day) 2     { 3         int num = 0; 4         //蔡勒公式 5         if(month==1||month==2) 6         { 7             month+=12; 8             year-=1; 9         }10         int c = year/100;11         year = year - c * 100;12         num = (year + year/4 + c/4 - 2*c + 26*(month + 1) / 10 + day-1)%7 ;13         if(num==0)14         {15             num+=7;16         }17         return num;18     }

(3)OK按钮实现功能

1 JButton btnNewButton = new JButton("OK"); 2         btnNewButton.addActionListener(new ActionListener() { 3             public void actionPerformed(ActionEvent e) { 4                 Date date = new Date(); 5                 String t_y = textField.getText(); 6                 String t_m = textField_1.getText(); 7                 String t_d = textField_2.getText(); 8                  9                 int year = Integer.parseInt(t_y);10                 int month = Integer.parseInt(t_m);11                 int day = Integer.parseInt(t_d);12                 String msg1 = date.NextDate(year,month,day);13                 String msg2 = date.LastDate(year,month,day);14                 int weeki = date.weekDay(year,month,day);15                 String msg = null;16                 msg = date.Check(year, month, day);17                 if(msg!=null)18                 {19                     JOptionPane.showMessageDialog(null,  msg, "警告!", JOptionPane.ERROR_MESSAGE);20                     textField.setText("");21                     textField_1.setText("");22                     textField_2.setText("");23                     textField_3.setText("");24                     textField_4.setText("");25                     textField_5.setText("");26                 }27                 else28                 {29                     textField_4.setText(msg1);30                     textField_5.setText(msg2);31                     textField_3.setText(String.valueOf(weeki));32                 }    33             }34         }35         );36         37         btnNewButton.setBounds(97, 158, 113, 27);38         getContentPane().add(btnNewButton);

(4)限制输入只能是数字

1 textField.addKeyListener(new KeyAdapter(){   2             public void keyTyped(KeyEvent e) {   3                 int keyChar = e.getKeyChar();                  4                 if(keyChar >= KeyEvent.VK_0 && keyChar <= KeyEvent.VK_9){   5                        6                 }else{   7                     e.consume(); //关键,屏蔽掉非法输入   8                 }   9             }  10         });  11         12         textField_1.addKeyListener(new KeyAdapter(){  13             public void keyTyped(KeyEvent e) {  14                 int keyChar = e.getKeyChar();                 15                 if(keyChar >= KeyEvent.VK_0 && keyChar <= KeyEvent.VK_9){  16                       17                 }else{  18                     e.consume(); //关键,屏蔽掉非法输入  19                 }  20             }  21         });  22         23         textField_2.addKeyListener(new KeyAdapter(){  24             public void keyTyped(KeyEvent e) {  25                 int keyChar = e.getKeyChar();                 26                 if(keyChar >= KeyEvent.VK_0 && keyChar <= KeyEvent.VK_9){  27                       28                 }else{  29                     e.consume(); //关键,屏蔽掉非法输入  30                 }  31             }  32         });

(5)Cancle按钮的功能

1 JButton btnNewButton_1 = new JButton("Cancle"); 2         btnNewButton_1.addActionListener(new ActionListener() { 3             public void actionPerformed(ActionEvent e) { 4                 textField.setText(""); 5                 textField_1.setText(""); 6                 textField_2.setText(""); 7                 textField_3.setText(""); 8                 textField_4.setText(""); 9                 textField_5.setText("");10             }11         });12         btnNewButton_1.setBounds(331, 158, 113, 27);13         getContentPane().add(btnNewButton_1);

(6)全部代码:

功能:

1 public class Date {  2     public String Check(int year, int month, int day)  3     {  4         String msg = null;  5         if((year<1912||year>2050))  //判断年份是否超出  6         {  7             msg = "输入有误,请重新输入!";  8             return msg;  9         } 10         if((month<1||month>12))  // 判断月份是否超出 11         { 12             msg += "输入有误,请重新输入!"; 13             return msg; 14         } 15         //判断日期是否超出 16         if(month==4||month==6||month==9||month==11) 17         { 18             if((day<1||day>30)) 19             { 20                 msg += "输入有误,请重新输入!"; 21                 return msg; 22             } 23         } 24         else if(month==2) 25         { 26             if((year%4==0&&year%100!=0)||year%400==0)//闰年 27             { 28                 if((day<1||day>29)) 29                 { 30                     msg += "输入有误,请重新输入!"; 31                     return msg; 32                 } 33             } 34             else      //非闰年 35             { 36                 if((day<1||day>28)) 37                 { 38                     msg += "输入有误,请重新输入!"; 39                     return msg; 40                 }                 41             } 42         } 43         else 44         { 45             if((day<1||day>31)) 46             { 47                 msg += "输入有误,请重新输入!"; 48                 return msg; 49             } 50         }     51         return msg; 52     } 53      54     public String NextDate(int year, int month, int day) 55     { 56          57         String nextdate; 58         if(month==2)  //2月 59         { 60             if(((year%4==0&&year%100!=0)||year%400==0)) //闰年时的2月 61             {         62                     if(day==29) 63                     { 64                         day=1; 65                         month++; 66                     } 67                     else 68                     { 69                         day++; 70                     } 71             } 72             else 73             { 74                 if(day==28) 75                 { 76                     day=1; 77                     month++; 78                 } 79                 else 80                 { 81                     day++; 82                 } 83             } 84         } 85         else if(month==12)  //12月份 86         { 87             if(day==31) 88             { 89                 year++;     90                 day=1; 91                 month=1; 92             } 93             else 94             { 95                 day++; 96             } 97         } 98         //一般月份 99         else100         {101             if(month==4||month==6||month==9||month==11)102             {        103                 if(day==30)104                 {105                     month++;106                     day=1;107                 }108                 else109                 {110                     day++;111                 }112             }113             else114             {115                 if(day==31)116                 {117                     month++;118                     day=1;119                 }120                 else121                 {122                     day++;123                 }124             }125         }126         nextdate =  "" + year + "年" + "" + month + "" + "月" + day + "日"  ;127         return nextdate;128     }129      130     public String LastDate(int year, int month, int day)131     {132         String lastdate = null;133         if(month==3)  //2月134         {135             if(((year%4==0&&year%100!=0)||year%400==0)) //闰年时的2月136             {        137                     if(day==1)138                     {139                         day=29;140                         month--;141                     }142                     else143                     {144                         day--;145                     }146             }147             else148             {149                 if(day==1)150                 {151                     day=28;152                     month--;153                 }154                 else155                 {156                     day--;157                 }158             }159         }160         else if(month==1)  //12月份161         {162             if(day==1)163             {164                 year--;    165                 day=31;166                 month=12;167             }168             else169             {170                 day--;171             }172         }173         //一般月份174         else175         {176             if(month==5||month==7||month==10||month==12)177             {        178                 if(day==1)179                 {180                     month--;181                     day=30;182                 }183                 else184                 {185                     day--;186                 }187             }188             else189             {190                 if(day==1)191                 {192                     month--;193                     day=31;194                 }195                 else196                 {197                     day--;198                 }199             }200         }201         lastdate =  "" + year + "年" + "" + month + "" + "月" + day + "日"  ;202         return lastdate;203     }204 205     public int weekDay(int year, int month, int day)206     {207         int num = 0;208         //蔡勒公式209         if(month==1||month==2)210         {211             month+=12;212             year-=1;213         }214         int c = year/100;215         year = year - c * 100;216         num = (year + year/4 + c/4 - 2*c + 26*(month + 1) / 10 + day-1)%7 ;217         if(num==0)218         {219             num+=7;220         }221         return num;222     }223 }

界面:

1 import java.awt.EventQueue;  2 import java.awt.event.ActionEvent;  3 import java.awt.event.ActionListener;  4 import java.awt.event.KeyAdapter;  5 import java.awt.event.KeyEvent;  6   7 import javax.swing.JButton;  8 import javax.swing.JFrame;  9  10 import javax.swing.JLabel; 11 import javax.swing.JOptionPane; 12 import javax.swing.JTextField; 13  14 public class ruance_1 extends JFrame { 15     private JTextField textField; 16     private JTextField textField_1; 17     private JTextField textField_2; 18     private JTextField textField_3; 19     private JTextField textField_4; 20     private JTextField textField_5; 21     public ruance_1() { 22         setTitle("\u65E5\u671F\u8BA1\u7B97\u7A0B\u5E8F"); 23         getContentPane().setLayout(null); 24          25         JLabel lblNewLabel = new JLabel("\u8BF7\u8F93\u5165\u9700\u8981\u8BA1\u7B97\u7684\u5E74\u6708\u65E5(\u6700\u597D\u662F\u6570\u5B57)\uFF1A"); 26         lblNewLabel.setBounds(88, 31, 287, 18); 27         getContentPane().add(lblNewLabel); 28          29         JLabel lblNewLabel_1 = new JLabel("\u5E74\uFF1A"); 30         lblNewLabel_1.setBounds(14, 79, 30, 18); 31         getContentPane().add(lblNewLabel_1); 32          33         textField = new JTextField(); 34         textField.setBounds(44, 76, 86, 24); 35         getContentPane().add(textField); 36         textField.setColumns(10); 37      38         JLabel lblNewLabel_2 = new JLabel("\u6708\uFF1A"); 39         lblNewLabel_2.setBounds(193, 79, 30, 18); 40         getContentPane().add(lblNewLabel_2); 41          42         textField_1 = new JTextField(); 43         textField_1.setBounds(224, 76, 86, 24); 44         getContentPane().add(textField_1); 45         textField_1.setColumns(10); 46          47         JLabel lblNewLabel_3 = new JLabel("\u65E5\uFF1A"); 48         lblNewLabel_3.setBounds(372, 79, 30, 18); 49         getContentPane().add(lblNewLabel_3); 50          51         textField_2 = new JTextField(); 52         textField_2.setBounds(402, 76, 86, 24); 53         getContentPane().add(textField_2); 54         textField_2.setColumns(10); 55          56         textField.addKeyListener(new KeyAdapter(){   57             public void keyTyped(KeyEvent e) {   58                 int keyChar = e.getKeyChar();                  59                 if(keyChar >= KeyEvent.VK_0 && keyChar <= KeyEvent.VK_9){   60                        61                 }else{   62                     e.consume(); //关键,屏蔽掉非法输入   63                 }   64             }   65         });   66          67         textField_1.addKeyListener(new KeyAdapter(){   68             public void keyTyped(KeyEvent e) {   69                 int keyChar = e.getKeyChar();                  70                 if(keyChar >= KeyEvent.VK_0 && keyChar <= KeyEvent.VK_9){   71                        72                 }else{   73                     e.consume(); //关键,屏蔽掉非法输入   74                 }   75             }   76         });   77          78         textField_2.addKeyListener(new KeyAdapter(){   79             public void keyTyped(KeyEvent e) {   80                 int keyChar = e.getKeyChar();                  81                 if(keyChar >= KeyEvent.VK_0 && keyChar <= KeyEvent.VK_9){   82                        83                 }else{   84                     e.consume(); //关键,屏蔽掉非法输入   85                 }   86             }   87         });   88          89         JButton btnNewButton = new JButton("OK"); 90         btnNewButton.addActionListener(new ActionListener() { 91             //判断字符串是否为数字 92 //            public boolean isInteger(String value) { 93 //                  try { 94 //                   Integer.parseInt(value); 95 //                   return true; 96 //                  } catch (NumberFormatException e) { 97 //                   return false; 98 //                  } 99 //                  }100             public void actionPerformed(ActionEvent e) {101                 Date date = new Date();102                 String t_y = textField.getText();103                 String t_m = textField_1.getText();104                 String t_d = textField_2.getText();105                 106                 int year = Integer.parseInt(t_y);107                 int month = Integer.parseInt(t_m);108                 int day = Integer.parseInt(t_d);109                 String msg1 = date.NextDate(year,month,day);110                 String msg2 = date.LastDate(year,month,day);111                 int weeki = date.weekDay(year,month,day);112                 String msg = null;113                 msg = date.Check(year, month, day);114                 if(msg!="")115                 {116                     JOptionPane.showMessageDialog(null,  msg, "警告!", JOptionPane.ERROR_MESSAGE);117                     textField.setText("");118                     textField_1.setText("");119                     textField_2.setText("");120                     textField_3.setText("");121                     textField_4.setText("");122                     textField_5.setText("");123                 }124                 else125                 {126                     textField_4.setText(msg1);127                     textField_5.setText(msg2);128                     textField_3.setText(String.valueOf(weeki));129                 }    130             }131         }132         );133         134         btnNewButton.setBounds(97, 158, 113, 27);135         getContentPane().add(btnNewButton);136         137         JButton btnNewButton_1 = new JButton("Cancle");138         btnNewButton_1.addActionListener(new ActionListener() {139             public void actionPerformed(ActionEvent e) {140                 textField.setText("");141                 textField_1.setText("");142                 textField_2.setText("");143                 textField_3.setText("");144                 textField_4.setText("");145                 textField_5.setText("");146             }147         });148         btnNewButton_1.setBounds(331, 158, 113, 27);149         getContentPane().add(btnNewButton_1);150         151         JLabel label = new JLabel("\u8FD9\u5929\u662F\u661F\u671F\uFF1A");152         label.setBounds(92, 261, 118, 18);153         getContentPane().add(label);154         155         JLabel label_1 = new JLabel("\u4E0B\u4E00\u5929\u662F\uFF1A");156         label_1.setBounds(97, 314, 118, 18);157         getContentPane().add(label_1);158         159         JLabel label_2 = new JLabel("\u4E0A\u4E00\u5929\u662F\uFF1A");160         label_2.setBounds(97, 364, 129, 18);161         getContentPane().add(label_2);162         163         textField_3 = new JTextField();164         textField_3.setColumns(10);165         textField_3.setBounds(193, 258, 86, 24);166         getContentPane().add(textField_3);167         168         textField_4 = new JTextField();169         textField_4.setColumns(10);170         textField_4.setBounds(193, 311, 168, 24);171         getContentPane().add(textField_4);172         173         textField_5 = new JTextField();174         textField_5.setColumns(10);175         textField_5.setBounds(193, 361, 168, 24);176         getContentPane().add(textField_5);177         this.setVisible(true);178         this.setSize(619, 503);179         this.setLocation(300, 200);180     }181     182     public static void main(String[] args) {183         EventQueue.invokeLater(new Runnable() {184             public void run() {185                 try {186                     ruance_1 frame = new ruance_1();187                     frame.setVisible(true);188                 } catch (Exception e) {189                     e.printStackTrace();190                 }191             }192         });193     }194 }

 

3、效果图:

 

 

转载于:https://www.cnblogs.com/5257yu/p/6802070.html

你可能感兴趣的文章
React native android 最常见的10个问题
查看>>
数据结构和算法
查看>>
.Net 项目代码风格要求
查看>>
[pat]1045 Favorite Color Stripe
查看>>
Immutable学习及 React 中的实践
查看>>
【转】性能测试步骤
查看>>
OSI与TCP/IP各层的结构与功能,都有哪些协议
查看>>
Android实例-程序切换到后台及从后台切换到前台
查看>>
spring boot启动定时任务
查看>>
值类型和引用类型
查看>>
[转]html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
查看>>
maven 常用插件
查看>>
算法 (二分查找算法)
查看>>
java Date 当天时间戳处理
查看>>
Python~迭代
查看>>
linux常用命令-关机、重启
查看>>
css布局 - 九宫格布局的方法汇总(更新中...)
查看>>
画图函数——点,线,矩形等等
查看>>
ejabberd_local
查看>>
BZOJ5020 [THUWC 2017]在美妙的数学王国中畅游LCT
查看>>