📄 jmjpdateutil.java
字号:
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 + -