⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jmjpdateutil.java

📁 梦界家园程序开发基底框架
💻 JAVA
字号:
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 *
 * System Name        : 僼儗乕儉儚乕僋
 * File Name          : Jdate.java
 * Generate           : Jdate.class
 * Compiler           : JDK1.4
 * OS                 : Windows2000Pro
 * Description        : Action奼挘僋儔僗
 *
 *++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 * Modification History
 *
 * Date                Name                Reason for change
 * --------------  ------------------  -----------------------------------------
 * 2005/09/08     jisong.Zhang(DMK)        Initial Release
 * 2005/09/19     jisong.Zhang(DMK)        setStrWymdst傪廋惓偡傞
 * 												丂丂getSTngnNM傪捛壛偡傞
 *++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
package jm.util ;

import java.util.HashMap;
import java.util.Calendar;
/**
 * <H3>儐乕僥傿儕僥傿僋儔僗</H3>
 *
 * <PRE>
 *
 * 惣楋偲榓楋偺曄姺丅
 *
 * </PRE>
 *
 * @author fu_changyong(1shome)
 * @see jdk1.5.2
 * @version 1.5.2.2
 */
public class JMJPDateUtil {
  /** 榓楋擭崋 */
  private HashMap<String,Object> hsmTngn;
  /** 摉慜擭崋 */
  private String sTngn;
  /** 奐巒惣楋擔 */
  private String strSymdst;
  /** 奐巒榓楋擔 */
  private String strWymdst;
  /** 梛擔 */
  private String[] strWex;
  /** weekday */
  //private String strWeekDay;
  /** MAX 擔晅 */
  private int iMaxDate;
  /** MIN丂擔晅 */
  private int iMinDate;

  public JMJPDateUtil() {
    /** 榓楋擭崋弶巒僙僢僩*/
    hsmTngn=new HashMap<String,Object>();

    String[] strTngnItem1=new String[4];
    strTngnItem1[0]="M";
    strTngnItem1[1]="柧帯";
    strTngnItem1[2]="1867";
    strTngnItem1[3]="18680908";
    hsmTngn.put("1",strTngnItem1);

    String[] strTngnItem2=new String[4];
    strTngnItem2[0]="T";
    strTngnItem2[1]="戝惓";
    strTngnItem2[2]="1911";
    strTngnItem2[3]="19120730";
    hsmTngn.put("2",strTngnItem2);

    String[] strTngnItem3=new String[4];
    strTngnItem3[0]="S";
    strTngnItem3[1]="徍榓";
    strTngnItem3[2]="1925";
    strTngnItem3[3]="19261225";
    hsmTngn.put("3",strTngnItem3);

    String[] strTngnItem4=new String[4];
    strTngnItem4[0]="H";
    strTngnItem4[1]="暯惉";
    strTngnItem4[2]="1988";
    strTngnItem4[3]="19890107";
    hsmTngn.put("4",strTngnItem4);

    String[] strTngnItem5 = new String[4];
    strTngnItem5[0] = "MAX";
    strTngnItem5[1] = "MAX";
    strTngnItem5[2] = "MAX";
    strTngnItem5[3] = "20991231";
    hsmTngn.put("5", strTngnItem5);

    /** 梛擔弶巒僙僢僩*/
    strWex=new String[7];
    strWex[0]="擔";
    strWex[1]="寧";
    strWex[2]="壩";
    strWex[3]="悈";
    strWex[4]="栘";
    strWex[5]="嬥";
    strWex[6]="搚";

    /** 奐巒惣楋擔弶巒僙僢僩 */
    strSymdst = null;
    /** 奐巒榓楋擔弶巒僙僢僩 */
    strWymdst = null;
    /** MAX 擔晅弶巒僙僢僩 */
    iMaxDate = 20991231;
    /** MIN丂擔晅弶巒僙僢僩 */
    iMinDate = 18680908;
    /** 摉慜擭崋弶巒僙僢僩*/
    sTngn = "4";
    /** weekday */
    //strWeekDay = null;
  }
  public int datCompare(JMJPDateUtil jdate){
    int iReturn = 0;
    int iFromYY=0;
    int iFromMM=0;
    int iFromDD = 0;
    int iToYY = 0;
    int iToMM = 0;
    int iToDD = 0;
    Calendar clFrom = null;
    Calendar clTo = null;
    String sDateFrom = this.strSymdst;
    String sDateTo = jdate.strSymdst;
    try {
      if (sDateFrom != null && sDateTo != null) {
        /**奐巒擔晅擭寧擔**/
        iFromYY = Integer.parseInt(sDateFrom.substring(0, 4));
        iFromMM = Integer.parseInt(sDateFrom.substring(4, 6));
        iFromDD = Integer.parseInt(sDateFrom.substring(6, 8));
        /**廔椆擔晅擭寧擔**/
        iToYY = Integer.parseInt(sDateTo.substring(0, 4));
        iToMM = Integer.parseInt(sDateTo.substring(4, 6));
        iToDD = Integer.parseInt(sDateTo.substring(6, 8));

        clFrom = Calendar.getInstance();
        clTo = Calendar.getInstance();
        clFrom.set(iFromYY, iFromMM - 1, iFromDD);
        clTo.set(iToYY, iToMM - 1, iToDD);
        while (clFrom.before(clTo)) {
          clFrom.add(Calendar.DATE, 1);
          iReturn++;
        }
      }
    }
    catch (Exception e) {
      e.printStackTrace();
    }
    return iReturn;
  }

  /**
   * 惣楋擔->榓楋擔
   * @return
   */
  private boolean sDateTowDate() {
    boolean blRetrn = false;
    String[] strTemp = null;
    int iTempYMD = 0;
 //   String sTempYY="";
    try{
        if (strSymdst != null) {
          iTempYMD = Integer.parseInt(strSymdst);
          for (int i = this.hsmTngn.size() - 1; i > 0; i--) {
            strTemp = (String[]) hsmTngn.get(String.valueOf(i));

            if (Integer.parseInt(strTemp[3]) <= iTempYMD) {
              this.strWymdst = String.valueOf(iTempYMD -
                                              Integer.parseInt(strTemp[2] +
                  "0000"));
              this.sTngn=String.valueOf(i);

              blRetrn = true;
              break;
            }
          }
        }
      if (blRetrn)
        if (this.strWymdst.length() < 6)
          strWymdst = "0" + strWymdst;
    }catch(Exception e){
      e.printStackTrace();
    }
    return blRetrn;
  }
  
  /**
   * 榓楋擔->惣楋擔
   * @return
   */
  private boolean wDateTosDate() {
    boolean blRetrn = false;
    try {
      if (this.strWymdst != null) {

        String[] strTemp = null;
        int iTempW = 0;
        strTemp = (String[])this.hsmTngn.get(this.sTngn);
        iTempW = Integer.parseInt(strTemp[2]);
        iTempW = Integer.parseInt(iTempW + "0000");
        this.strSymdst = String.valueOf(iTempW+Integer.parseInt(this.strWymdst));
        blRetrn = true;
      }
    }
    catch (Exception e) {
      e.printStackTrace();
    }
	return blRetrn;
  }
  /**
   * 榓楋擔CHECK
   * @param wdate
   * @return
   */
  private boolean wDateChk(String sdate) {
    boolean blRetrn = false;
    int iYY=0;
    int iMM=0;
    int iDD=0;
    Calendar calTemp=Calendar.getInstance();
    try {
      /**摉慜擭崋*/
      String[] strTemp = null;
      /**師偺擭崋*/
      String[] strTemp1 =null;

      int iTngn=Integer.parseInt(this.sTngn)+1;
      strTemp1= (String[]) hsmTngn.get(String.valueOf(iTngn));
      strTemp = (String[]) hsmTngn.get(getSTngn());

      if (strTemp != null) {
        int iAddYY = Integer.parseInt(strTemp[2]);
        iYY = Integer.parseInt(sdate.substring(0, 2));
        iYY=iAddYY+iYY;

        iMM = Integer.parseInt(sdate.substring(2, 4));
        iDD = Integer.parseInt(sdate.substring(4, 6));

        String sdateMD=sdate.substring(2, 6);

        int idateYMD = Integer.parseInt(iYY + sdateMD);

        if (iMM <= 12 && iDD > 0) {
          calTemp.set(iYY, iMM - 1, 1);

          if (calTemp.getActualMaximum(Calendar.DAY_OF_MONTH) >= iDD)
            if (idateYMD >= Integer.parseInt(strTemp[3]) &&
                idateYMD < Integer.parseInt(strTemp1[3]))
              blRetrn = true;
        }

      }
    }
    catch (Exception e) {
      e.printStackTrace();
    }
    return blRetrn;
  }
  /**
   * 惣楋擔CHECK
   * @param wdate
   * @return
   */
  private String sDateChk(String sdate) {
    String sRetrn = "";
    int iYY=0;
    int iMM=0;
    int iDD=0;
    Calendar calTemp=Calendar.getInstance();
    try {
      int idate = (Integer.parseInt(sdate));
      if (sdate.length() == 6)
        if (idate <= 800000)
          idate += 20000000;
        else
          idate += 19000000;

      sdate = String.valueOf(idate);
      iYY = Integer.parseInt(sdate.substring(0,4));
      iMM = Integer.parseInt(sdate.substring(4, 6));
      iDD = Integer.parseInt(sdate.substring(6, 8));

      if (iMM <= 12 && iDD>0) {
        calTemp.set(iYY,iMM-1,1);
        if(calTemp.getActualMaximum(Calendar.DAY_OF_MONTH)>=iDD)
          if(idate<=iMaxDate&&idate>=iMinDate){
            sRetrn = sdate;
          }
      }
    }
    catch (Exception e) {
      e.printStackTrace();
    }

      return sRetrn;

  }
  /**
   * 奐巒惣楋擔
   * @return
   */
  public String getStrSymdst() {
    return this.strSymdst;
  }
  /**
   * 奐巒惣楋擔
   * @param strSymdst
   */
  public void setStrSymdst(String strSymdst) {
    this.setDefault();
    try{
      strSymdst = strSymdst.trim();
      String strTemp = sDateChk(strSymdst);
      if (strTemp.length() == 8) {
        this.strSymdst = strTemp;
        this.sDateTowDate();
      }
    }catch(Exception e){
      e.printStackTrace();
      this.setDefault();
      System.out.print("奐巒惣楋擔晄惓妋");
    }
  }
  /**
   * 奐巒榓楋擔
   * @return
   */
  public String getStrWymdst() {
    return this.strWymdst;
  }

  /**
   * 奐巒榓楋擔
   * @param strWymdst
   */
  public void setStrWymdst(String strWymdst, String sTngn) {
	strWymdst = strWymdst.trim();
	sTngn = sTngn.trim();
	try {
//	  String strTemp = null;
	  String[] sArrTemp = null;
	  for (int iTemp = 1; iTemp < this.hsmTngn.size(); iTemp++) {
		sArrTemp = (String[]) hsmTngn.get(String.valueOf(iTemp));
		if (sArrTemp[0].equals(sTngn) || sArrTemp[1].equals(sTngn)) {
		  sTngn = String.valueOf(iTemp);
		  break;
		}
	  }
	  this.sTngn = sTngn;
	  this.strWymdst = strWymdst;
	  if (wDateChk(strWymdst))
		this.wDateTosDate();
	  else
		this.setDefault();
	}
	catch (Exception e) {
	  this.setDefault();
	  System.out.print("奐巒榓楋擔晄惓妋");
	}
  }

  /**
   * MAX 擔晅
   * @return
   */
  public int getIMaxDate() {
    return iMaxDate;
  }
  /**
   * MAX 擔晅
   * @return
   */
  public int getIMinDate() {
    return iMinDate;
  }
  /**
   * MIN 擔晅
   * @param iMaxDate
   */
  public void setIMaxDate(int iMaxDate) {
    this.iMaxDate = iMaxDate;
  }
  /**
   *  MIN 擔晅
   * @param iMinDate
   */
  public void setIMinDate(int iMinDate) {
    this.iMinDate = iMinDate;
  }
  /**
   * 摉慜擭崋
   * @return
   */
  public String getSTngn() {
   return this.sTngn;
 }

 /**
  * 摉慜擭崋柤徧
  * @return
  */
 public String getSTngnNM() {
  String[] sArrTemp=null;
  String sTemp=null;
  sArrTemp=(String[])hsmTngn.get(String.valueOf(this.sTngn));
  sTemp=sArrTemp[0];
  return sTemp;
 }

  /**
   * weekday
   * @return
   */
  public String getStrWeekDay()
  {
    String strRetrn=null;
    Calendar calTemp=Calendar.getInstance();
    int iYY=0;
    int iMM=0;
    int iDD=0;
    int iWW=0;
    try{
      if (this.strSymdst != null) {
        iYY = Integer.parseInt(strSymdst.substring(0, 4));
        iMM = Integer.parseInt(strSymdst.substring(4, 6));
        iDD = Integer.parseInt(strSymdst.substring(6, 8));
        calTemp.set(iYY, iMM-1, iDD);
        iWW=(calTemp.get(Calendar.DAY_OF_WEEK)+6)%7;
        strRetrn = (this.strWex[iWW]);
      }
    }catch(Exception e){
      e.printStackTrace();
    }
      return strRetrn;
  }
  /**
   * set default
   */
  private void setDefault() {
    this.strSymdst = null;
    //this.strWeekDay = null;
    this.strWymdst = null;
    this.sTngn = null;
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -