package JustForLeisure;
/*
* introduce:当年刚开始学java时候做的,算是哥的处女作吧
* 做这个小程序纯粹是做着玩的,做过之后也就忘记了
* 但是今天源代码竟然被找到了,想到当年学技术的心酸,竟然舍不得删掉
* 姑且发表掉吧,算是对自己的一个交代
*/
public class DateJudge extends javax.swing.JFrame{
public void showUI(){
//设定框体的基本属性
this.setTitle("Java日期判定器");
this.setSize(400,300);
this.setDefaultCloseOperation(3);
this.setLocationRelativeTo(null);
//布局管理
this.setLayout(null);
//窗体组件
javax.swing.JLabel lable1=new javax.swing.JLabel("输入年份:");
javax.swing.JLabel lable2=new javax.swing.JLabel("输入一个数字(1~365):");
javax.swing.JTextField field1=new javax.swing.JTextField(5);
javax.swing.JTextField field2=new javax.swing.JTextField(5);
javax.swing.JButton button=new javax.swing.JButton("转换");
//添加组件
this.add(lable1);
this.add(lable2);
this.add(field1);
this.add(field2);
this.add(button);
//设定lable ,filed ,button的位置
lable1.setBounds(130, 50, 200, 30);
lable2.setBounds(80, 100, 200, 30);
field1.setBounds(200,50,70,30);
field2.setBounds(200,100,70,30);
button.setBounds(180,200,80,30);
this.setVisible(true);
//添加监听器
Listener listener=new Listener(field1,field2);
button.addActionListener(listener);
}
public static void main(String wang[]){
DateJudge dj=new DateJudge();
dj.showUI();
}
}
package JustForLeisure;
import java.awt.event.ActionEvent;
public class Listener implements java.awt.event.ActionListener{
//构造器
private String text1;
private String text2;
javax.swing.JTextField field1;
javax.swing.JTextField field2;
public Listener(javax.swing.JTextField field1,javax.swing.JTextField field2){
this.field1=field1;
this.field2=field2;
}
/*number1:年
* number2:日月
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
public void actionPerformed(ActionEvent e){
text1=field1.getText();
text2=field2.getText();
int number1 =toInt(text1);
int number2 =toInt(text2);
System.out.println("number1--->"+number1+"\nnumber2---->"+number2);
if(number2>365||(number2<=0)){
javax.swing.JOptionPane.showMessageDialog(null, "你家一年有"+number2+"天???");
} else {
for(int i=1;i<=12;i++){
if(number2>0){
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12){
number2-=31;
}else if(i==2&&isLeapYear(number1)){
number2-=29;
}else if(i==2&&!isLeapYear(number1)){
number2-=28;
}else {
number2-=30;
}
}else {
if(i==2||i==4||i==6||i==8||i==9||i==11||i==13){
number2+=31;
javax.swing.JOptionPane.showMessageDialog(null, number1+"年"+(i-1)+"月"+number2+"日");
i=13;
}else if(i==3&&isLeapYear(number1)){
number2+=29;
javax.swing.JOptionPane.showMessageDialog(null, number1+"闰年"+(i-1)+"月"+number2+"日");
i=13;
}else if(i==3&&!isLeapYear(number1)){
number2+=28;
javax.swing.JOptionPane.showMessageDialog(null, number1+"平年"+(i-1)+"月"+number2+"日");
i=13;
}else if(i==5||i==7||i==10||i==12){
number2+=30;
javax.swing.JOptionPane.showMessageDialog(null, number1+"年"+(i-1)+"月"+number2+"日");
i=13;
}
}
}
}
}
/*
*自己定义的将字符串改成数字的方法
*其实Java编程系统中有一个将字符串转换成int型数据的方法
*int t=Integer.parseInt(text);
*/
public int toInt(String text){
int number=0;
int n=text.length();
System.out.println("n------->"+n);
byte nums[]=new byte[10];
nums=text.getBytes();
for(int i=0;i<n;i++){
char ch=(char)nums[i];
number=number*getIndex(i)+judgeNumber(ch);
}
System.out.println(number);
return number;
}
/*
* 确定与字符相对应的数字
*/
public int judgeNumber(char ch){
if(ch=='0'){
return 0;
}else if(ch=='1'){
return 1;
}else if(ch=='2'){
return 2;
}else if(ch=='3'){
return 3;
}else if(ch=='4'){
return 4;
}else if(ch=='5'){
return 5;
}else if(ch=='6'){
return 6;
}else if(ch=='7'){
return 7;
}else if(ch=='8'){
return 8;
}else {
return 9;
}
}
/*
* 得到指数
*/
public int getIndex(int i){
switch(i)
{
case 0: return 1;
case 1:case2: return 10;
}
return 10;
}
/*
* 判断该年是不是闰年
*/
public boolean isLeapYear(int year){
if(year>2012){
javax.swing.JOptionPane.showMessageDialog(null, "不好意思,"+year+"年,世界已经毁灭!不怕,咱的程序功能足够强大,仍能推算出来!!嘎嘎");
}
int residue1=year/4;
System.out.println("residue1=------>"+residue1);
int residue2=year/400;
if(residue1*4==year||residue2*400==year){
return true;
}
return false;
}
}
**************************************************************