`
恋洁e生
  • 浏览: 44758 次
  • 性别: Icon_minigender_1
  • 来自: 山东聊城
社区版块
存档分类
最新评论

日期转换器

GUI 
阅读更多

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

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

分享到:
评论

相关推荐

    struts日期转换器

    在`date_convert`这个压缩包文件中,可能包含了实现自定义日期转换器的示例代码,或者是演示如何在Struts应用中配置和使用日期转换器的教程。这些资源可以帮助开发者理解并解决在处理日期字段时可能出现的格式问题,...

    Presian-Date-for-MySQL, pDate是用于 MySQL 5.1 的公历/jalali ( Shamsi ) 日期转换器函数.zip

    Presian-Date-for-MySQL, pDate是用于 MySQL 5.1 的公历/jalali ( Shamsi ) 日期转换器函数 [MySQL] pDate内容:关于要求下载安装工具使用情况许可协议问题/反馈问题[MySQL] pDate是用于MySQL的公历/jalali日期转换...

    门禁IC卡4位日期转换工具 by readme.exe

    门禁IC卡4位日期转换工具 by readme.exe

    IC卡日期转换工具IC卡常规转换

    支持转换时间戳,四位正传,Hex1正传,Hex2正传,立林正传,六位正传,十六位正传,四位反转,Hex1反转,Hex2反转,立林反转,六位反转,十六位反转,明码八位,明码六位,六位日期,立林日期。

    struts2(时间日期类型转换器)

    Struts2的时间日期转换器(`StrutsTypeConverter`实现)默认支持多种日期格式,例如"yyyy-MM-dd"、"MM/dd/yyyy"等。当用户在表单中输入日期数据时,Struts2会尝试根据配置的日期格式将这些数据转换为日期对象。如果...

    朱利安日期到年的日期转换器:转换(修改)朱利安日期到年的日期(和年份)-matlab开发

    Julian2doy,将(修改后的)儒略日期转换为一年中的第几天 (1-366)。 可选地,还返回年份,以使转换后的日期明确。 当天的分数被忽略。 Doy 和 year 一起为我们提供了另一种日期表示。 这个包旨在提供一个可靠和可...

    springboot日期转换器实现实例解析

    在本实例解析中,我们将深入探讨如何创建和使用自定义的日期转换器。 首先,我们需要了解Spring的核心转换服务,它定义了一个`Converter`接口。`Converter, T&gt;`接口有两个泛型参数,`S`代表源类型,`T`代表目标类型...

    Springboot日期转换器实现代码及示例

    以下将详细介绍如何在Spring Boot中实现日期转换器以及其使用方法。 ### 1. 日期转换器接口介绍 Spring框架提供了一个`Converter`接口,该接口用于进行类型间的转换。`Converter, T&gt;`有两个泛型参数,`S`表示源...

    日期转换器:公历、波斯和伊斯兰历:转换公历、波斯/贾拉里(太阳回历)和伊斯兰农历回历的日期-matlab开发

    dateconv(Y,M,D,from_calend,to_calend) 计算公历公历 ('ce')、波斯太阳回历或贾拉利 ('sh') 和伊斯兰农历回历 ('lh') 日历之间的双边日期转换。 输出一个 [Y,M,D] 的 1x3 数值数组向量,以及一个打印日期的字符数组...

    日期转化器。日期换算

    这里我们将深入探讨日期转换器的工作原理、应用场景以及相关的编程概念。 1. **日期表示与格式化** 在计算机系统中,日期通常以数字形式存储,如Unix时间戳(自1970年1月1日00:00:00 UTC以来的秒数)或Windows ...

    天数日期计算转换器MFC

    3. **日期转换**:转换天数为具体的日期,比如用户输入一个天数,程序可以返回对应的日期。 4. **错误处理**:确保输入的有效性,如检查日期格式是否正确,天数是否超出范围等。 在MFC中,用户界面设计通常通过...

    16进制hex和日期时间datetime转换工具2.0

    比上一版增加很多功能: 1、16进制转时间、转秒; 2、指定时间转时间、转秒; 3、现在时间转时间、转秒; 4、指定时间之间时间差、转时间、转秒。

    nepdate:尼泊尔日期转换器库

    结盟尼泊尔日期转换器库nepdate 是用 C 编写的,可以将 Bikram Sambat 日期转换为 AD,反之亦然。支持的范围AD 到 BS 的转换:1944 - 2033 BS 到 AD 的转换:2000 - 2090用法要编译示例,请执行make all 。 有关更多...

    转换器(Converter)——Struts 2.0中的魔术师

    例如,你可以创建一个日期转换器,将用户输入的字符串转换为日期对象。此外,Struts 2还提供了预定义的转换器,如IntegerConverter、DoubleConverter等,可以直接使用。 转换器的异常处理也是其强大之处。当转换...

    struts2枚举值、日期值转换示例

    自定义日期转换器也需要实现`Converter`接口,但在`convert`方法内,我们需要处理日期字符串到`java.util.Date`对象的转换。可以使用`SimpleDateFormat`类来解析日期字符串,然后将其转换为日期对象。需要注意的是,...

    spring mvc3.1.0 日期自动转换

    -- 自定义或增强日期转换器 --&gt; ``` 4. 国际化支持:Spring MVC还考虑到了国际化需求,允许你根据用户的语言环境(locale)来调整日期的格式。这可以通过定义不同的日期格式模板并在服务器端进行动态选择来实现...

    MR-PersianDateConverter:基于 PersianGregorian 日历的轻量级且易于使用的 Objective-c 日期转换器

    MR-PersianDateConverter 基于波斯/格里高利历的轻量级且易于使用的objective-c 日期转换器。 它由三种易于使用的方法组成: (NSString *)convertDatewithFormat:(NSString *) dateInput : (NSString *) Format :将...

    PersianDate4MySQL:pDate是MySQL 5.1+的Gregorian Jalali(Shamsi)日期转换器函数

    [MySQL] pDate是MySQL的Gregorian / Jalali日期转换器功能。 要求 MySQL 5+ 下载 zip: : tgz: : git http: git clone http: https://github.com/zoghal/Presian-Date-for-MySQL.git git: git clone git://...

Global site tag (gtag.js) - Google Analytics