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

📄 jmjpdateutil.java.svn-base

📁 MSN客服自动化机器人
💻 SVN-BASE
字号:
package jm.util ;

import java.util.HashMap;
import java.util.Calendar;
/**
 * <H3>���ڹ��ߣ����գ�</H3>
 *
 * <PRE>
 *
 * ����Ƙa��̕ϊ��B
 *
 * </PRE>
 *
 * @author fu_changyong(1shome)
 * @see jdk1.5.2
 * @version 1.5.2.2
 */
@SuppressWarnings("unchecked")
public class JMJPDateUtil {
  /** �a��N�� */
  private HashMap hsmTngn;
  /** ���O�N�� */
  private String sTngn;
  /** �J�n����� */
  private String strSymdst;
  /** �J�n�a��� */
  private String strWymdst;
  /** �j�� */
  private String[] strWex;
  /** weekday */
  //private String strWeekDay;
  /** MAX ��t */
  private int iMaxDate;
  /** MIN�@��t */
  private int iMinDate;

  public JMJPDateUtil() {
    /** �a��N�����n�Z�b�g*/
    hsmTngn=new HashMap();

    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]="���a";
    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);

    /** �j��n�Z�b�g*/
    strWex=new String[7];
    strWex[0]="��";
    strWex[1]="��";
    strWex[2]="��";
    strWex[3]="��";
    strWex[4]="��";
    strWex[5]="��";
    strWex[6]="�y";

    /** �J�n�����n�Z�b�g */
    strSymdst = null;
    /** �J�n�a���n�Z�b�g */
    strWymdst = null;
    /** MAX ��t���n�Z�b�g */
    iMaxDate = 20991231;
    /** MIN�@��t���n�Z�b�g */
    iMinDate = 18680908;
    /** ���O�N�����n�Z�b�g*/
    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) {
        /**�J�n��t�N����**/
        iFromYY = Integer.parseInt(sDateFrom.substring(0, 4));
        iFromMM = Integer.parseInt(sDateFrom.substring(4, 6));
        iFromDD = Integer.parseInt(sDateFrom.substring(6, 8));
        /**�I����t�N����**/
        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;
  }

  /**
   * �����->�a���
   * @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;
  }
  
  /**
   * �a���->�����
   * @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;
  }
  /**
   * �a���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 {
      /**���O�N��*/
      String[] strTemp = null;
      /**���̔N��*/
      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;

  }
  /**
   * �J�n�����
   * @return
   */
  public String getStrSymdst() {
    return this.strSymdst;
  }
  /**
   * �J�n�����
   * @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("�J�n�����s���m");
    }
  }
  /**
   * �J�n�a���
   * @return
   */
  public String getStrWymdst() {
    return this.strWymdst;
  }

  /**
   * �J�n�a���
   * @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("�J�n�a���s���m");
	}
  }

  /**
   * MAX ��t
   * @return
   */
  public int getIMaxDate() {
    return iMaxDate;
  }
  /**
   * MAX ��t
   * @return
   */
  public int getIMinDate() {
    return iMinDate;
  }
  /**
   * MIN ��t
   * @param iMaxDate
   */
  public void setIMaxDate(int iMaxDate) {
    this.iMaxDate = iMaxDate;
  }
  /**
   *  MIN ��t
   * @param iMinDate
   */
  public void setIMinDate(int iMinDate) {
    this.iMinDate = iMinDate;
  }
  /**
   * ���O�N��
   * @return
   */
  public String getSTngn() {
   return this.sTngn;
 }

 /**
  * ���O�N������
  * @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 + -