📄 jmjpdateutil.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 + -