日期转换器

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;
  }
}

**************************************************************

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值