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

📄 checdate.java

📁 日期类 实现日期 时间的类
💻 JAVA
字号:
package checdateapi;import java.util.StringTokenizer;public class CHECDate { public  final static int   FLAG_YEAR=6; public  final static int   FLAG_MONTH=5;  public final static int   FLAG_DAY=4;  int  year;   int month;   int day;    public CHECDate() {      year=0;      month=0;      day=0;    }    public CHECDate(int h,int m,int s) {      year=h;      month=m;      day=s;    }    public  void  setYear(int y){      year=y;    }    public int getYear(){      return year;    }    public  void  setMonth(int m){      month=m;    }    public int getMonth(){      return month;    }    public  void  setDay(int d){      day=d;    }    public int getDay(){      return day;    }    public  String toString(){         String rtString;         if (year<10)  {           rtString="0"+Integer.toString(year);         }         else{           rtString=Integer.toString(year);         }         if (month<10)  {           rtString=rtString+"-0"+ Integer.toString(month);         }         else{           rtString=rtString+"-" + Integer.toString(month);         }         if (day<10)  {           rtString=rtString+"-0"+ Integer.toString(day);         }         else{           rtString=rtString+"-" + Integer.toString(day);         }      return  rtString;    }    public void  setDate(int y,int m,int d){      year=y;      month=m;      day=d;    }    public void setDate(String strTime){     strTime.trim();     if(strTime.length()>7 & strTime.length()<11)     {      StringTokenizer st = new StringTokenizer(strTime.trim(),"-");      String []str=new String[4];      int count=0;      while (st.hasMoreTokens()) {        if(count>2)  break;        str[count]=(String)st.nextElement();         count++;       }       if(count>1){         year=Integer.parseInt(str[0]);         month=Integer.parseInt(str[1]);         day=Integer.parseInt(str[2]);       }     }    }    public void setDate(CHECDate cd){        year=cd.getYear();        month=cd.getMonth();        day=cd.getDay();      }    /*  public boolean equal(CHECDate cd){        boolean b=false;        if(year==cd.getYear()  &&            month==cd.getMonth() &&            day ==cd.getDay()           )        {          b=true;        }        return b;   }   */      public  CHECDate nextDay(){   int y=2001,m=1,d=1;   if (month==12  &&  day==31){     y=year+1;     m=1;     d=1;   }   else if((month==1 ||           month==3   ||           month==5   ||           month==7   ||           month==8   ||           month==10 ) &&           day==31           ){          y=year;          m=month+1;          d=1;   }   else if((month==4 ||           month==6   ||           month==9   ||           month==11  )&&           day==30           ){          y=year;          m=month+1;          d=1;   }   else if( (year %4)==0 &&            month==2 &&            day==29            ){            y=year;            m=month+1;            d=1;   }   else if( (year %4)!=0 &&            month==2 &&            day==28            ){            y=year;            m=month+1;            d=1;   }   else{        y=year;        m=month;        d=day+1;   }   CHECDate rd=new CHECDate(y,m,d);   return rd; } public  CHECDate beforeDay(){  int y=2001,m=1,d=1;  if (month==1&&  day==1){    y=year-1;    m=12;    d=31;  }  else if((month==12 ||          //month==3   &&          month==5   ||          month==7   ||          //month==8   &&          month==10  )&&          day==1          ){         y=year;         m=month-1;         d=30;  }  else if ((month==2   ||          month==4 ||          month==6   ||          month==8    ||          month==9   ||          month==11  )&&          day==1          ){         y=year;         m=month-1;         d=31;  }  else if( (year %4)==0 &&           month==3 &&           day==1           ){           y=year;           m=month-1;           d=29;  }  else if( (year %4)!=0 &&           month==3 &&           day==1           ){           y=year;           m=month-1;           d=28;  }  else{       y=year;       m=month;       d=day-1;  }  CHECDate rd=new CHECDate(y,m,d);  return rd;   }   public  int getMaxDays()    {      return  getMaxDays(year,month);    }  public  int getMaxDays(int yyyy,int mm)   {    int maxDays=30;       if((mm==1 ||          //month==3   &&          mm==3  ||          mm==5   ||          //month==8   &&          mm==7 ||          mm==8 ||          mm==10 ||          mm==12          )          ){         maxDays=31;  }  else if ((//month==2   ||          mm==4 ||          mm==6   ||          mm==9   ||          mm==11  )          ){         maxDays=30;  }  else if( (yyyy %4)==0 &&           mm==2           ){           maxDays=29;  }  else if( (yyyy%4)!=0 &&           mm==2           ){           maxDays=28;  }return maxDays;   }      /*   public  CHECDate nextDay(){     int y=2001,m=1,d=1;     if (month==12  &&  day==31){       y=year+1;       m=1;       d=1;     }     else if(month==1 &&             month==3   &&             month==5   &&             month==7   &&             month==8   &&             month==10  &&             day==31             ){            y=year;            m=month+1;            day=1;     }     else if(month==4 &&             month==6   &&             month==9   &&             month==11   &&             day==30             ){            y=year;            m=month+1;            day=1;     }     else if( (year %4)==0 &&              month==2 &&              day==29              ){              y=year;              m=month+1;              day=1;     }     else if( (year %4)!=0 &&              month==2 &&              day==28              ){              y=year;              m=month+1;              day=1;     }     else{          y=year;          m=month;          d=day+1;     }     CHECDate rd=new CHECDate(y,m,d);     return rd;   }   public  CHECDate beforeDay(){    int y=2001,m=1,d=1;    if (month==1&&  day==1){      y=year-1;      m=12;      d=31;    }    else if(month==12 &&            //month==3   &&            month==5   &&            month==7   &&            //month==8   &&            month==10  &&            day==1            ){           y=year;           m=month-1;           day=30;    }    else if (month==2   &&            month==4 &&            month==6   &&            month==8    &&            month==9   &&            month==11   &&            day==1            ){           y=year;           m=month-1;           day=31;    }    else if( (year %4)==0 &&             month==3 &&             day==1             ){             y=year;             m=month-1;             day=29;    }    else if( (year %4)!=0 &&             month==3 &&             day==1             ){             y=year;             m=month-1;             day=28;    }    else{         y=year;         m=month;         d=day-1;    }    CHECDate rd=new CHECDate(y,m,d);    return rd;   }   */   //操作,大于,大于等于,小于,小于等于   //public  long timeAdd(int s){   //}   public boolean equal(CHECDate t){       return getStamp()==t.getStamp() ?  true:false;   }   public  boolean dateUpper(CHECDate t){     return getStamp()>t.getStamp() ?  true:false;}public  boolean dateLower(CHECDate t){  return getStamp()<t.getStamp() ?  true:false;}public  boolean dateLowerEqual(CHECDate t){  return getStamp()<=t.getStamp() ?  true:false;}public  boolean dateUpperEqual(CHECDate t){return getStamp()>=t.getStamp() ?  true:false;}  /* public  boolean dateUpper(CHECDate t){     if(year>t.getYear()){       return true;     }     else  if((year==t.getYear())&(month>t.getMonth())){       return true;     }     else if((year==t.getYear())&(month==t.getMonth()) & (day>t.getDay()))     {       return true;     }     return false;}public  boolean dateLower(CHECDate t){   if(year<t.getYear()){     return true;   }   else if((year==t.getYear()) & (month<t.getMonth())){     return true;   }   else  if((year==t.getYear()) & (month==t.getMonth()) &(day<t.getDay()))   {     return true;   }   return false;}public  boolean dateLowerEqual(CHECDate t){   if(dateLower(t) || equal(t)) return true;   return false;}public  boolean dateUpperEqual(CHECDate t){  if(dateUpper(t) || equal(t)) return true;  return false;}*/public  CHECDate  add(long d){    CHECDate rtd=new CHECDate(year,month,day);    if(d>0)    {    for(int i=0;i<d;i++){      rtd=rtd.nextDay();    }    }    else if(d<0)    {      for(int i=0;i<(-1)*d;i++){        rtd=rtd.beforeDay();      }    }    return rtd;}public  CHECDate  add(int flag,long d){    CHECDate rtd=new CHECDate(year,month,day);   if(flag==FLAG_DAY)   {    if(d>0)     {      for(int i=0;i<d;i++){      rtd=rtd.nextDay();        }     }     else if(d<0)     {       for(int i=0;i<(-1)*d;i++){       rtd=rtd.beforeDay();         }     }   }   else if(flag==FLAG_MONTH)   {     int m=rtd.getMonth();     int y=rtd.getYear();     int tm=m+(int)d;     int nm=tm%12;     int ny=tm/12;     if(nm<=0)     {       nm=12;       ny--;     }     rtd.setMonth(nm);     rtd.setYear(y+ny);     }   else if(flag==FLAG_YEAR)   {     int y=rtd.getYear();      rtd.setYear(y+(int)d);   }   /*   int tmpDay=rtd.getDay();   int maxDays=rtd.getMaxDays(rtd.getYear(),rtd.getMonth());   if(tmpDay>maxDays)     rtd.setDay(maxDays);*/ return rtd;}public  CHECDate diff(long d){    CHECDate rtd=new CHECDate(year,month,day);    for(int i=0;i<d;i++){      rtd=rtd.beforeDay();    }    return rtd;}public long  diffDate(CHECDate d){   int  a[]={31,28,31,30,31,30,31,31,30,31,30,31};   int  b[]={31,29,31,30,31,30,31,31,30,31,30,31};   long ds=0;   int y1,m1, d1;   int y2,m2,d2;   boolean f=false;   int days=0;   int mc=0;   if (equal(d)) return 0;   if(dateUpper(d)){     y1=year;     m1=month;     d1=day;     y2=d.getYear();     m2=d.getMonth();     d2=d.getDay();   }   else{     y2=year;     m2=month;     d2=day;     y1=d.getYear();     m1=d.getMonth();     d1=d.getDay();     f=true;   }    int dy=y1-y2;    if(dy>1){      for(int  i=1;i<dy;i++)      {        int tmpy=y2+i;         if((tmpy%4)==0){            days+=366;         }         else  days+=365;      }     // tmpdyy=y2+1;    }    if(y1>y2){       mc=m1-m2+12;    }    else    {      mc=m1-m2;    }    for(int  i=0;i<mc;i++)    {      int kk=i+m2;      if(kk<13){          if((y2%4)==0)          {           days+=b[kk-1];           }           else  {             days+=a[kk-1];           }      }       else       {         if((y1%4)==0)                  {                   days+=b[kk%13];                   }                   else  days+=a[kk%13];       }    }    days+=d1-d2;    if(f) days*=-1;    return days;}private boolean  illegalMonth(){  if(month>12 & month<1)  {    month=1;    return true;  }  return false;}public long  getStamp(){  return (year*100+month)*100+day;}}

⌨️ 快捷键说明

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