<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    飛艷小屋

    程序--人生--哲學___________________歡迎艷兒的加入

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      52 Posts :: 175 Stories :: 107 Comments :: 0 Trackbacks

    package jp.co.smile.common.utility;

    import java.text.DecimalFormat;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.GregorianCalendar;
    import java.util.TimeZone;

    //*************************************************************************
    /**
     * 擔晅憖嶌偺嫟捠娭悢僋儔僗偱偡丅<P>
     * 偙偺僋儔僗偺儊僜僢僪偼慡偰static儊僜僢僪偵側偭偰偄傑偡偺偱丄
     * 僀儞僗僞儞僗壔偣偢偵巊梡偟傑偡丅<BR>
     * <B>巊梡椺丗</B>
     * <BLOCKQUOTE><PRE>
     *  //擇偮偺擔晅娫偺擔悢傪庢摼偟傑偡丅
     *  try {
     *    int returnDays = DateUtility.getDayCount("20010311", "20010411");
     *  } catch(Exception e) {
     *    //僄儔乕張棟傪峴偆
     *  }
     * </BLOCKQUOTE></PRE>
     *
     * @author  NECST Software Engineering Promotion Center
     * @version $Revision$ $Date$
     * @since SWEC Parts Release 1.0
     */
    //*************************************************************************
    public class DateUtility {

      //***********************************************************************
      //public僼傿乕儖僪
      //***********************************************************************

      /** 擭係寘寧俀寘擔俀寘傪昞偡抣偱偡 */
      public static final int YYYYMMDD = 1;

      /** 擭係寘寧俀寘傪昞偡抣偱偡 */
      public static final int YYYYMM = 2;

      /** 擭係寘傪昞偡抣偱偡 */
      public static final int YYYY = 3;

      /** 擭俀寘寧俀寘擔俀寘傪昞偡抣偱偡 */
      public static final int YYMMDD = 4;

      /** 擭俀寘寧俀寘傪昞偡抣偱偡 */
      public static final int YYMM = 5;

      /** 擭俀寘傪昞偡抣偱偡 */
      public static final int YY = 6;

      /** 寧俀寘擔俀寘傪昞偡抣偱偡 */
      public static final int MMDD = 7;

      /** 寧俀寘傪昞偡抣偱偡 */
      public static final int MM = 8;

      /** 擔俀寘傪昞偡抣偱偡 */
      public static final int DD = 9;

      /** 僙僷儗乕僞偵乽/乿傪巊偆応崌偺抣偱偡 */
      public static final int SLASH = 1;

      /** 僙僷儗乕僞偵擔杮岅傪巊偆応崌偺抣偱偡 */
      public static final int JAPANESE = 2;

      /** 僙僷儗乕僞傪巊傢側偄応崌偺抣偱偡 */
      public static final int NONE = 3;

      /** 嵟彫擔晅 */
      public static final Date MIN_VALUE = createDate(1970, 1, 1);

      /** 嵟戝擔晅 */
      public static final Date MAX_VALUE = createDate(9999, 12, 31);

      //*************************************************************************
      //private僼傿乕儖僪
      //*************************************************************************

      /** 擔傪妱傝弌偡悢抣(24*60*60*1000) */
      private static final long  DATE_VALUE = 86400000;

      //*************************************************************************
      //僐儞僗僩儔僋僞
      //*************************************************************************

      //*************************************************************************
      //public儊僜僢僪
      //*************************************************************************
      //*************************************************************************
      /**
       * 僔僗僥儉擔晅丒帪崗傪庢摼偟傑偡丅
       *
       * @param     argPattern    1丗'YYYY-MM-DD HH24:MI:SS'宍幃偱曉偡<BR>
       *                           2丗'YYYYMMDD'宍幃偱曉偡<BR>
       *                           3丗'HH24MISS'宍幃偱曉偡<BR>
       * @return    argPattern偱巜掕偝傟偨宍幃偺擔晅丒帪崗<BR>
       */
      //*************************************************************************
      public static String getTimeStamp(int argPattern) {

       String sTimeStamp = "";

        Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("JST"));
        DecimalFormat decimalFormat = new DecimalFormat();

        decimalFormat.applyPattern("0000");
        String sYear = decimalFormat.format(calendar.get(Calendar.YEAR));

        decimalFormat.applyPattern("00");
        String sMonth = decimalFormat.format(calendar.get(Calendar.MONTH)+1 );
        String sDay = decimalFormat.format(calendar.get(Calendar.DATE));
        String sHh = decimalFormat.format(calendar.get(Calendar.HOUR_OF_DAY));
        String sMm = decimalFormat.format(calendar.get(Calendar.MINUTE));
        String sSs = decimalFormat.format(calendar.get(Calendar.SECOND));

        switch (argPattern) {
          case 1:    //'YYYY-MM-DD HH24:MI:SS'宍幃偱曉偡
            sTimeStamp = sYear + "-" + sMonth + "-" + sDay + " " + sHh + ":" + sMm + ":" + sSs;
            break;
          case 2:    //'YYYYMMDD'宍幃偱曉偡
            sTimeStamp = sYear + sMonth + sDay;
            break;
          case 3:    //'HH24MISS'宍幃偱曉偡
            sTimeStamp = sHh + sMm + sSs;
            break;
          default:
            throw new IllegalArgumentException("argPattern is error");
        }

        return sTimeStamp;
      }

      //*************************************************************************
      /**
       * 巜掕偝傟偨擔晅(惣楋)偺懨摉惈傪僠僃僢僋偟傑偡丅<BR>
       *
       * @param   argDate   擭寧擔乮YYYYMMDD乯
       * @return  true:惓忢丄false:俶俧
       */
      //*************************************************************************
      public static boolean isValidateDate(String argDate) {
        //悢抣宆偱丄擭寧擔傪庢摼
        int yearNum = 0;
        int monthNum = 0;
        int dayNum = 0;

        if (argDate == null || argDate.length() != 8) return false;

        try {

          yearNum = Integer.parseInt(argDate.substring(0,4));
          monthNum = Integer.parseInt(argDate.substring(4,6)) - 1;
          dayNum = Integer.parseInt(argDate.substring(6,8));

          //懨摉惈僠僃僢僋
          Calendar calendar = new GregorianCalendar(yearNum, monthNum, dayNum);
          calendar.setLenient(false);
          calendar.getTime();

        } catch (Throwable ex) {
          return false;
        }
        return true;

      }

      //***************************************************************************
      /**
       * 巜掕偝傟偨擔晅(僗儔僢僔儏崬傒惣楋)偺懨摉惈傪僠僃僢僋偟傑偡丅<BR>
       * 擭丄寧丄擔偑僗儔僢僔儏埲奜偺婰崋偱嬫愗傜傟偰偄偰傕栤戣偁傝傑偣傫丅
       *
       * @param  argDate   擔晅乮YYYY/MM/DD乯
       * @return true:惓忢丄false:俶俧
       */
      //***************************************************************************
      public static boolean isValidateDateSlash(String argDate) {

        //悢抣宆偱丄擭寧擔傪庢摼
        int yearNum = 0;
        int monthNum = 0;
        int dayNum = 0;

        if (argDate == null || argDate.length() != 10) return false;

        try {
          yearNum = Integer.parseInt(argDate.substring(0,4));
          monthNum = Integer.parseInt(argDate.substring(5,7)) - 1;
          dayNum = Integer.parseInt(argDate.substring(8,10));

          //懨摉惈僠僃僢僋
          Calendar calendar = new GregorianCalendar(yearNum, monthNum, dayNum);
          calendar.setLenient(false);
          calendar.getTime();

        } catch (Throwable ex) {
          return false;
        }
        return true;
      }

      //***************************************************************************
      /**
       * 巜掕偝傟偨帪崗(帪暘)偺懨摉惈傪僠僃僢僋偟傑偡丅<BR>
       *
       * @param argTime   帪暘乮HHMM乯
       * @return true:惓忢丄false:俶俧
       */
      //***************************************************************************
      public static boolean isValidateTime(String argTime) {

        if (argTime == null || argTime.length() != 4) {
          return false;  //堷悢偺帪崗偑晄惓側応崌false傪栠傝抣偲偡傞
        }

        try {
          int intArgH = Integer.parseInt(argTime.substring(0, 2));
          int intArgM = Integer.parseInt(argTime.substring(2));

          //懨摉惈僠僃僢僋
          Calendar calendar = GregorianCalendar.getInstance();
          calendar.set(Calendar.HOUR_OF_DAY, intArgH);
          calendar.set(Calendar.MINUTE, intArgM);
          if (calendar.get(Calendar.HOUR_OF_DAY) == intArgH
                && calendar.get(Calendar.MINUTE) == intArgM) {
          } else {
            return false;
          }

        } catch (NumberFormatException ex) {
          return false;
        }
        return true;

      }

      //***************************************************************************
      /**
       * 巜掕偝傟偨擭寧擔偺梛擔傪庢摼偟傑偡丅<BR>
       * 擔晅偺懨摉惈僠僃僢僋偼峴偄傑偣傫丅僠僃僢僋屻偺擔晅傪僙僢僩偟偰偔偩偝偄丅
       *
       * @param argDate   擭寧擔乮YYYYMMDD乯
       * @return    梛擔掕悢
       *           <TABLE BORDER="1">
       *           <TR><TD>Calendar.SUNDAY</TD><TD> 擔</TD></TR>
       *           <TR><TD>Calendar.MONDAY</TD><TD> 寧</TD></TR>
       *           <TR><TD>Calendar.TUESDAY</TD><TD> 壩</TD></TR>
       *           <TR><TD>Calendar.WEDNESDAY</TD><TD> 悈</TD></TR>
       *           <TR><TD>Calendar.THURSDAY</TD><TD> 栘</TD></TR>
       *           <TR><TD>Calendar.FRIDAY</TD><TD> 嬥</TD></TR>
       *           <TR><TD>Calendar.SATURDAY</TD><TD> 搚</TD></TR>
       *           </TABLE>
       */
      //***************************************************************************
      public static int getDayOfWeek(String argDate) {

        if (argDate.length() != 8) {
          throw new IllegalArgumentException("argDate length != 8");
        }

        int intArgY = Integer.parseInt(argDate.substring(0, 4));
        int intArgM = Integer.parseInt(argDate.substring(4, 6)) - 1;
        int intArgD = Integer.parseInt(argDate.substring(6));
        //堷悢偱梌偊傜傟偨擔晅傪愝掕
        Calendar calendar = GregorianCalendar.getInstance();
        calendar.set(intArgY, intArgM, intArgD);
        //梛擔偺庢摼
        int returnDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);

        return returnDayOfWeek;
      }

      //***************************************************************************
      /**
       * 巜掕擔晅偐傜偺憡懳廡擔晅偺廤崌傪曉偟傑偡丅<BR>
       * 擔晅偺懨摉惈僠僃僢僋偼峴偄傑偣傫丅僠僃僢僋屻偺擔晅傪僙僢僩偟偰偔偩偝偄丅
       *
       * @param   argDay 巜掕擔晅(YYYYMMDD宍幃)
       * @param   argRelative 巜掕擔晅偐傜偺憡懳廡(0, 1, 2, ...)
       * @param   argStart 廡偺奐巒擔(0=擔丄1=寧丄2=壩丄3=悈丄4=栘丄5=嬥丄6=搚)
       * @return  摉奩廡偺擔晅偺廤崌傪YYYYMMDD宍幃偱曉偟傑偡丅
       */
      //***************************************************************************
      public static String[] getWeek(String argDay, int argRelative, int argStart) {

        if (argDay.length() != 8) {
          throw new IllegalArgumentException("argDay length != 8");
        }
        if (argStart < 0 || argStart > 6) {
          throw new IllegalArgumentException("argStart is error");
        }

        Calendar date = Calendar.getInstance();
        date.clear();
          date.set(Integer.parseInt(formatDate(argDay, DateUtility.YYYY, DateUtility.NONE)),
                   Integer.parseInt(formatDate(argDay, DateUtility.MM, DateUtility.NONE)) - 1,
          Integer.parseInt(formatDate(argDay, DateUtility.DD, DateUtility.NONE)));

        int dyaow = date.get(Calendar.DAY_OF_WEEK);
        int offset;
        int past;

        switch (dyaow) {
          case Calendar.SUNDAY:
            offset = 0;
            break;
          case Calendar.MONDAY:
            offset = 1;
            break;
          case Calendar.TUESDAY:
            offset = 2;
            break;
          case Calendar.WEDNESDAY:
            offset = 3;
            break;
          case Calendar.THURSDAY:
            offset = 4;
            break;
          case Calendar.FRIDAY:
            offset = 5;
            break;
          case Calendar.SATURDAY:
            offset = 6;
            break;
          default:
            offset = 0;
            break;
          }

        Calendar days[] = new Calendar[7];

        if (offset >= argStart) {
          past = offset - argStart;
        } else {
          past = offset + 7 - argStart;
        }

        date.add(Calendar.DATE, (-1) * past);

        days[0] = (Calendar)date.clone();
        for (int iCounter = 1; iCounter < 7; iCounter++) {
          date.add(Calendar.DATE, 1);
          days[iCounter] = (Calendar)date.clone();
        }

        String retdays[] = new String[7];
        int year;
        int month;
        int day;

        for (int iCounter = 0; iCounter < 7; iCounter++) {
          days[iCounter].add(Calendar.DATE, 7 * argRelative);
          year = days[iCounter].get(Calendar.YEAR);
          month = days[iCounter].get(Calendar.MONTH) + 1;
          day = days[iCounter].get(Calendar.DATE);
          retdays[iCounter] = toCharacter(year) + toCharacter(month) + toCharacter(day);
        }

        return retdays;
      }

      //****************************************************************************
      /**
       *  寧偺嵟廔擔傪曉媝偟傑偡丅<br>
       *
       *  @param argYear  擭乮int宆乯
       *  @param argMonth 寧乮int宆乯
       *
       *  @return 嵟廔擔乮int宆乯
       */
      //****************************************************************************
      public static int getLastDayOfMonth(int argYear , int argMonth) {

        if (argYear <= 0){
          throw new IllegalArgumentException("argYear <= 0");
        }

        switch (argMonth){
          case 1:
          case 3:
          case 5:
          case 7:
          case 8:
          case 10:
          case 12:
            return 31;
          case 4:
          case 6:
          case 9:
          case 11:
            return 30;
          case 2:
            if(DateUtility.isLeapYear(argYear)){
              return 29;
            }else{
              return 28;
            }
          default:
            throw new IllegalArgumentException("argMonth is error");
        }
      }

      //****************************************************************************
      /**
       *  寧偺嵟廔擔傪曉媝偟傑偡丅<br>
       *
       *  @param argYear  擭乮String宆乯
       *  @param argMonth 寧乮String宆乯
       *
       *  @return 嵟廔擔乮String宆乯
       */
      //****************************************************************************
      public static String getLastDayOfMonth(String argYear , String argMonth) {

        //堷悢偺int宆傊偺曄姺
        int iYear = Integer.parseInt(argYear);
        int iMonth = Integer.parseInt(argMonth);
        return Integer.toString(getLastDayOfMonth(iYear,iMonth));
      }

      //***************************************************************************
      /**
       * 巜掕偝傟偨擔晅(惣楋)偐傜偦偺寧枛傑偱偺擔悢傪寁嶼偟傑偡丅<BR>
       * 擔晅偺懨摉惈僠僃僢僋偼峴偄傑偣傫丅僠僃僢僋屻偺擔晅傪僙僢僩偟偰偔偩偝偄丅
       *
       * @param argDate   擭寧擔乮YYYYMMDD乯
       * @return   擔悢<BR>
       */
      //***************************************************************************
      public static int getLeftDaysOfMonth(String argDate) {

        if (argDate.length() != 8) {
          throw new IllegalArgumentException("argDate length != 8");
        }

        int intArgY = Integer.parseInt(argDate.substring(0, 4));
        int intArgM = Integer.parseInt(argDate.substring(4, 6)) - 1;
        int intArgD = Integer.parseInt(argDate.substring(6));
        //堷悢偱梌偊傜傟偨擔晅傪愝掕
        Calendar calendar = GregorianCalendar.getInstance();
        calendar.set(intArgY, intArgM, intArgD);
        //枛擔偺庢摼
        int intMaxDayOfMonth = calendar.getActualMaximum(Calendar.DATE);

        return (intMaxDayOfMonth - calendar.get(Calendar.DATE));
      }

      //***************************************************************************
      /**
       * 婎揰偲側傞擔晅偺俶擔屻偺擔晅傪寁嶼偟傑偡丅<BR>
       * 擔晅偺懨摉惈僠僃僢僋偼峴偄傑偣傫丅僠僃僢僋屻偺擔晅傪僙僢僩偟偰偔偩偝偄丅
       *
       * @param argStartDate  擭寧擔(YYYYMMDD乯
       * @param argNum        擔悢
       * @return 庢摼擔晅乮YYYYMMDD乯<BR>
       */
      //***************************************************************************
      public static String getAfterDays(String argStartDate, int argNum) {

        if (argStartDate.length() != 8) {
          throw new IllegalArgumentException("argDate length != 8");
        }

        int intArgStartY = Integer.parseInt(argStartDate.substring(0, 4));
        int intArgStartM = Integer.parseInt(argStartDate.substring(4, 6)) - 1;
        int intArgStartD = Integer.parseInt(argStartDate.substring(6));

        //堷悢偱梌偊傜傟偨奐巒擔晅傪愝掕
        Calendar calendar = GregorianCalendar.getInstance();
        calendar.set(intArgStartY, intArgStartM, intArgStartD);
        //俶擔屻偺擔晅傪庢摼
        calendar.add(Calendar.DATE, argNum);

        int returnY = calendar.get(Calendar.YEAR);
        int returnM = calendar.get(Calendar.MONTH) + 1;
        int returnD = calendar.get(Calendar.DATE);
        int returnAfterDays = returnY * 10000 + returnM * 100 + returnD;

        return String.valueOf(returnAfterDays);

      }

      //***************************************************************************
      /**
       * 婎揰偲側傞擔晅偺俶儢寧屻偺擔晅傪寁嶼偟傑偡丅<BR>
       * 擔晅偺懨摉惈僠僃僢僋偼峴偄傑偣傫丅僠僃僢僋屻偺擔晅傪僙僢僩偟偰偔偩偝偄丅
       *
       * @param argDate  擭寧擔(YYYYMMDD乯
       * @param argNum   寧悢
       * @return 庢摼擔晅乮YYYYMMDD乯
       */
      //***************************************************************************
      public static String getAfterMonth(String argDate, int argNum) {

        if (argDate.length() != 8) {
          throw new IllegalArgumentException("argDate length != 8");
        }

        int intArgStartY = Integer.parseInt(argDate.substring(0, 4));
        int intArgStartM = Integer.parseInt(argDate.substring(4, 6)) - 1;
        int intArgStartD = Integer.parseInt(argDate.substring(6));
        //堷悢偱梌偊傜傟偨奐巒擔晅傪愝掕
        Calendar calendar = GregorianCalendar.getInstance();
        calendar.set(intArgStartY, intArgStartM, intArgStartD);
        //俶儢寧屻偺擔晅傪庢摼
        calendar.add(Calendar.MONTH, argNum);

        int returnY = calendar.get(Calendar.YEAR);
        int returnM = calendar.get(Calendar.MONTH) + 1;
        int returnD = calendar.get(Calendar.DATE);
        int returnAfterMonth = returnY * 10000 + returnM * 100 + returnD;

        return String.valueOf(returnAfterMonth);

      }

      //***************************************************************************
      /**
       * 巜掕偝傟偨帪崗(惣楋擭寧擔帪暘)偵帪娫(帪暘)傪壛嶼傑偨偼尭嶼偟偨
       * 帪崗(惣楋擭寧擔帪暘)傪寁嶼偟傑偡丅<BR>
       * 擔晅偺懨摉惈僠僃僢僋偼峴偄傑偣傫丅僠僃僢僋屻偺擔晅傪僙僢僩偟偰偔偩偝偄丅
       *
       * @param argDate  奐巒擭寧擔帪暘(YYYYMMDDHHMM乯
       * @param argNum   帪暘(HHMM)
       * @return 庢摼擭寧擔帪暘(YYYYMMDDHHMM乯
       */
      //***************************************************************************
      public static String getReplyTime(String argDate, String argNum) {

        if (argDate.length() != 12) {
          throw new IllegalArgumentException("argDate length != 12");
        }
        if (argNum.length() != 4) {
          throw new IllegalArgumentException("argNum length != 4");
        }

        int intArgStartY = Integer.parseInt(argDate.substring(0, 4));
        int intArgStartM = Integer.parseInt(argDate.substring(4, 6)) - 1;
        int intArgStartD = Integer.parseInt(argDate.substring(6, 8));
        int intArgStartH = Integer.parseInt(argDate.substring(8, 10));
        int intArgStartMin = Integer.parseInt(argDate.substring(10));
        //堷悢偱梌偊傜傟偨奐巒擔晅傪愝掕
        Calendar calendar = GregorianCalendar.getInstance();
        calendar.set(intArgStartY, intArgStartM, intArgStartD, intArgStartH, intArgStartMin);

        int intArgH = Integer.parseInt(argNum.substring(0, 2));
        int intArgMin = Integer.parseInt(argNum.substring(2));
        //俶帪娫屻偺帪崗傪庢摼
        calendar.add(Calendar.HOUR_OF_DAY, intArgH);
        calendar.add(Calendar.MINUTE, intArgMin);

        long returnY = (long)calendar.get(Calendar.YEAR);
        long returnM = (long)calendar.get(Calendar.MONTH) + 1;
        long returnD = (long)calendar.get(Calendar.DATE);
        long returnH = (long)calendar.get(Calendar.HOUR_OF_DAY);
        long returnMin = (long)calendar.get(Calendar.MINUTE);
        long returnReplyTime = returnY * 100000000 + returnM * 1000000
                        + returnD * 10000 + returnH * 100  + returnMin;
        return String.valueOf(returnReplyTime);

      }

      //***************************************************************************
      /**
       * 巜掕偝傟偨婜娫偺擔悢傪庢摼偟傑偡丅<BR>
       *
       * @param  argStart 奐巒擔乮惣楋乯<BR>
       * @param  argEnd   廔椆擔乮惣楋乯<BR>
       * @return 巜掕婜娫偺擔悢<BR>
       * @see Calendar
       */
      //***************************************************************************
      public static int getDayCount(Calendar argStart, Calendar argEnd) {

        //巜掕偝傟偨婜娫偺擔悢
        long days = 0;

        Calendar start = Calendar.getInstance();
        Calendar end = Calendar.getInstance();

        //尩枾側夝愅偺僠僃僢僋
        start.setLenient(false);
        end.setLenient(false);

        start.set(Calendar.YEAR, argStart.get(Calendar.YEAR));
        start.set(Calendar.MONTH, argStart.get(Calendar.MONTH));
        start.set(Calendar.DATE, argStart.get(Calendar.DATE));

        end.set(Calendar.YEAR, argEnd.get(Calendar.YEAR));
        end.set(Calendar.MONTH, argEnd.get(Calendar.MONTH));
        end.set(Calendar.DATE, argEnd.get(Calendar.DATE));

        //奐巒擔偺帪暘昩偺弶婜壔
        start.clear(Calendar.HOUR_OF_DAY);
        start.clear(Calendar.HOUR);
        start.clear(Calendar.MINUTE);
        start.clear(Calendar.SECOND);

        //廔椆擔偺帪暘昩偺弶婜壔
        end.clear(Calendar.HOUR_OF_DAY);
        end.clear(Calendar.HOUR);
        end.clear(Calendar.MINUTE);
        end.clear(Calendar.SECOND);

       //儈儕昩偱奐巒擔丄廔椆擔偺嵎暘傪媮傔傑偡丅
        days = end.getTime().getTime() - start.getTime().getTime();

        //嵎暘(儈儕昩)傪嵎暘(擔悢)偵曄姺偟傑偡丅
        days = days / DATE_VALUE;

        return (int)days;
      }

      //***************************************************************************
      /**
       * 巜掕偝傟偨婜娫偺擔悢傪庢摼偟傑偡丅<BR>
       *
       * @param  argStartYear  奐巒擔偺擭乮惣楋乯<BR>
       * @param  argStartMonth 奐巒擔偺寧<BR>
       * @param  argStartDay   奐巒擔偺擔<BR>
       * @param  argEndYear    廔椆擔偺擭乮惣楋乯<BR>
       * @param  argEndMonth   廔椆擔偺寧<BR>
       * @param  argEndDay     廔椆擔偺擔<BR>
       * @return 巜掕婜娫偺擔悢<BR>
       * @see Calendar
       */
      //***************************************************************************
      public static int getDayCount(int argStartYear, int argStartMonth, int argStartDay,
                                    int argEndYear,   int argEndMonth,   int argEndDay) {

        //奐巒擔丄廔椆擔偺奿擺曄悢
        Calendar start = Calendar.getInstance();
        Calendar end = Calendar.getInstance();

        //尩枾側夝愅偺僠僃僢僋
        start.setLenient(false);
        end.setLenient(false);

        //奐巒擔丄廔椆擔傪奿擺偟傑偡丅
        start.set(argStartYear, argStartMonth - 1, argStartDay);
        end.set(argEndYear, argEndMonth - 1, argEndDay);

        return getDayCount(start, end);
      }

      //***************************************************************************
      /**
       * 巜掕偝傟偨婜娫偺擔悢傪庢摼偟傑偡丅<BR>
       *
       * @param  argStart 奐巒擔乮惣楋乯<BR>
       * @param  argEnd   廔椆擔乮惣楋乯<BR>
       * @return 巜掕婜娫偺擔悢<BR>
       * @see Calendar
       */
      //***************************************************************************
      public static int getDayCount(Date argStart, Date argEnd) {

        //奐巒擔丄廔椆擔偺奿擺曄悢
        Calendar start = Calendar.getInstance();
        Calendar end = Calendar.getInstance();

        //尩枾側夝愅偺僠僃僢僋
        start.setLenient(false);
        end.setLenient(false);

        //奐巒擔丄廔椆擔傪奿擺偟傑偡丅
        start.setTime(argStart);
        end.setTime(argEnd);

        return getDayCount(start, end);
      }

      //***************************************************************************
      /**
       * 巜掕偝傟偨婜娫偺擔悢傪庢摼偟傑偡丅<BR>
       *
       * @param  argStart 奐巒擔乮YYYYMMDD乯
       * @param  argEnd   廔椆擔乮YYYYMMDD乯
       * @return 巜掕婜娫偺擔悢<BR>
       * @see Calendar
       */
      //***************************************************************************
      public static int getDayCount(String argStart, String argEnd) {

        //堷悢偺僠僃僢僋
        if (argStart.trim().length() != 8 ||
            argEnd.trim().length() != 8) {
            throw new IllegalArgumentException("argStart or argEnd length != 8");
        }

        //奐巒擔丄廔椆擔偺奿擺曄悢
        Calendar start = Calendar.getInstance();
        Calendar end = Calendar.getInstance();

        //尩枾側夝愅偺僠僃僢僋
        start.setLenient(false);
        end.setLenient(false);

        //暥帤楍偐傜奐巒擔偺擭丄寧丄擔傪拪弌偟傑偡丅
        int startYear = Integer.parseInt(argStart.substring(0, 4));
        int startMonth = Integer.parseInt(argStart.substring(4, 6));
        int startDay = Integer.parseInt(argStart.substring(6, 8));

        //暥帤楍偐傜廔椆擔偺擭丄寧丄擔傪拪弌偟傑偡丅
        int endYear = Integer.parseInt(argEnd.substring(0, 4));
        int endMonth = Integer.parseInt(argEnd.substring(4, 6));
        int endDay = Integer.parseInt(argEnd.substring(6, 8));

        //僇儗儞僟乕宆偵僙僢僩偟傑偡丅
        start.set(startYear, startMonth - 1, startDay);
        end.set(endYear, endMonth - 1, endDay);

        return getDayCount(start, end);
      }

      //***************************************************************************
      /**
       * 巜掕偝傟偨擇偮偺帪崗(惣楋擭寧擔帪暘)娫偺帪娫(帪暘)傪庢摼偟傑偡丅<BR>
       * 擔晅偺懨摉惈僠僃僢僋偼峴偄傑偣傫丅僠僃僢僋屻偺擔晅傪僙僢僩偟偰偔偩偝偄丅
       *
       * @param argStart  奐巒擭寧擔(YYYYMMDDHHMM乯
       * @param argEnd    廔椆擭寧擔(YYYYMMDDHHMM乯
       * @return 帪娫丄暘偺儕僗僩<BR>
       */
      //***************************************************************************
      public static String[] getTimeCount(String argStart, String argEnd) {
        String returnString[] = new String[2];

        if (argStart.length() != 12 || argEnd.length() != 12) {
          throw new IllegalArgumentException("argStart or argEnd length != 12");
        }

        int intArgStartY = Integer.parseInt(argStart.substring(0, 4));
        int intArgStartM = Integer.parseInt(argStart.substring(4, 6)) - 1;
        int intArgStartD = Integer.parseInt(argStart.substring(6, 8));
        int intArgStartH = Integer.parseInt(argStart.substring(8, 10));
        int intArgStartMin = Integer.parseInt(argStart.substring(10));
        //堷悢偱梌偊傜傟偨奐巒擔晅傪愝掕
        Calendar calendarStart = GregorianCalendar.getInstance();
        calendarStart.set(intArgStartY, intArgStartM,
                          intArgStartD, intArgStartH, intArgStartMin);
        //奐巒擔晅偺儈儕昩庢摼
        long lngStartMilSec = (calendarStart.getTime()).getTime();

        int intArgEndY = Integer.parseInt(argEnd.substring(0, 4));
        int intArgEndM = Integer.parseInt(argEnd.substring(4, 6)) - 1;
        int intArgEndD = Integer.parseInt(argEnd.substring(6, 8));
        int intArgEndH = Integer.parseInt(argEnd.substring(8, 10));
        int intArgEndMin = Integer.parseInt(argEnd.substring(10));
        //堷悢偱梌偊傜傟偨廔椆擔晅傪愝掕
        Calendar calendarEnd   = GregorianCalendar.getInstance();
        calendarEnd.set(intArgEndY, intArgEndM,
                        intArgEndD, intArgEndH, intArgEndMin);
        //廔椆擔晅偺儈儕昩庢摼
        long lngEndMilSec = (calendarEnd.getTime()).getTime();

        //廔椆擔晅偺儈儕昩亅奐巒擔晅偺儈儕昩
        long calcMilsec = lngEndMilSec - lngStartMilSec;
        returnString[0] = String.valueOf(calcMilsec / (1000 * 60 * 60));
        returnString[1] = String.valueOf(calcMilsec % (1000 * 60 * 60) / (1000 * 60));

        return returnString;
      }

      //***************************************************************************
      /**
       * 巜掕偝傟偨擭偑塠擭偐暯擭偐傪僠僃僢僋偟傑偡丅
       *
       * @param argYear  擭(YYYY乯
       * @return    true:塠擭丄false:暯擭
       */
      //***************************************************************************
      public static boolean isLeapYear(String argYear) {
        if (argYear.length() != 4) {
        throw new IllegalArgumentException("argYear length != 4");
        }

        int intArgY = Integer.parseInt(argYear);
        //堷悢偱梌偊傜傟偨擭傪愝掕
        Calendar calendar = GregorianCalendar.getInstance();
        calendar.set(Calendar.YEAR, intArgY);
        GregorianCalendar gcalendar = new GregorianCalendar();
        if (gcalendar.isLeapYear(calendar.get(Calendar.YEAR))) {
          return true;
        } else {
          return false;
        }
      }

      //***************************************************************************
      /**
       * 巜掕偝傟偨惗偑塠擭偐暯擭偐傪僠僃僢僋偟傑偡丅
       *
       * @param argYear  擭(YYYY乯
       * @return    true:塠擭丄false:暯擭
       */
      //***************************************************************************
      public static boolean isLeapYear(int argYear) {
        String strYear = Integer.toString(argYear);
        return isLeapYear(strYear);
      }

      //***************************************************************************
      /**
       * 擭寧擔偺彂幃曄姺傪峴偄傑偡丅
       * 擔晅偺懨摉惈僠僃僢僋偼峴偄傑偣傫丅僠僃僢僋屻偺擔晅傪僙僢僩偟偰偔偩偝偄丅
       *
       * @param     argDay 惣楋擭寧擔(YYYYMMDD宍幃)
       * @param     argType 曄姺彂幃<br>
       *            DateUtility.YYYYMMDD<br>
       *            DateUtility.YYYYMM<br>
       *            DateUtility.YYYY<br>
       *            DateUtility.YYMMDD<br>
       *            DateUtility.YYMM<br>
       *            DateUtility.YY<br>
       *            DateUtility.MMDD<br>
       *            DateUtility.MM<br>
       *            DateUtility.DD
       * @param     argSeparator 僙僷儗乕僞<br>
       *            DateUtility.SLASH   YYYY/MM/DD<br>
       *            DateUtility.JAPANESE  YYYY擭MM寧DD擔<br>
       *            DateUtility.NONE    僙僷儗乕僞側偟
       * @return    彂幃曄姺偝傟偨暥帤楍
       */
      //***************************************************************************
      public static String formatDate(String argDay, int argType, int argSeparator) {
        String result = null;

        switch (argSeparator) {
          case DateUtility.SLASH:
            result = formatDate(argDay, argType, "/", "/");
            break;
          case DateUtility.JAPANESE:
            result = formatDate(argDay, argType, "擭", "寧");
            result = addString(result, argType, "擭", "寧", "擔");
            break;
          case DateUtility.NONE:
            result = formatDate(argDay, argType, "", "");
            break;
          default:
            throw new IllegalArgumentException("argSeparator is error");
        }

        return result;

      }

      //***************************************************************************
      /**
       * 擭寧擔偺彂幃曄姺傪峴偄傑偡丅
       * 擔晅偺懨摉惈僠僃僢僋偼峴偄傑偣傫丅僠僃僢僋屻偺擔晅傪僙僢僩偟偰偔偩偝偄丅
       *
       * @param     argDay 惣楋擭寧擔(YYYYMMDD宍幃)
       * @param     argType 曄姺彂幃<br>
       *            DateUtility.YYYYMMDD<br>
       *            DateUtility.YYYYMM<br>
       *            DateUtility.YYYY<br>
       *            DateUtility.YYMMDD<br>
       *            DateUtility.YYMM<br>
       *            DateUtility.YY<br>
       *            DateUtility.MMDD<br>
       *            DateUtility.MM<br>
       *            DateUtility.DD
       * @param     argS1 擭寧偺僙僷儗乕僞
       * @param     argS2 寧擔偺僙僷儗乕僞
       * @return    彂幃曄姺偝傟偨暥帤楍
       */
      //***************************************************************************
      public static String formatDate(String argDay, int argType, String argS1, String argS2) {
        String result = null;

        if (argDay.length() != 8) {
          throw new IllegalArgumentException("argDate length != 8");
        }

        switch (argType) {
          case DateUtility.YYYYMMDD:
            result = argDay.substring(0, 4) + argS1 + argDay.substring(4, 6) + argS2 + argDay.substring(6, 8);
            break;
          case DateUtility.YYYYMM:
            result = argDay.substring(0, 4) + argS1 + argDay.substring(4, 6);
            break;
          case DateUtility.YYYY:
            result = argDay.substring(0, 4);
            break;
          case DateUtility.YYMMDD:
            result = argDay.substring(2, 4) + argS1 + argDay.substring(4, 6) + argS2 + argDay.substring(6, 8);
            break;
          case DateUtility.YYMM:
            result = argDay.substring(2, 4) + argS1 + argDay.substring(4, 6);
            break;
          case DateUtility.YY:
            result = argDay.substring(2, 4);
            break;
          case DateUtility.MMDD:
            result = argDay.substring(4, 6) + argS2 + argDay.substring(6, 8);
            break;
          case DateUtility.MM:
            result = argDay.substring(4, 6);
            break;
          case DateUtility.DD:
            result = argDay.substring(6, 8);
            break;
          default:
            throw new IllegalArgumentException("argType is error");
        }

        return result;
      }

      //***************************************************************************
      /**
       * String宆(YYYYMMDD)傪Date宆偵曄姺偟傑偡丅
       * @param argYMD 擭寧擔(YYYYMMDD)
       * @return 巜掕偝傟偨擭寧擔偺Date宆
       */
      //***************************************************************************
      public static Date parseDate(String argYMD) {
        //僷儔儊乕僞僠僃僢僋
        if (argYMD == null || argYMD.length() != 8) {
          throw new IllegalArgumentException("argument is wrong");
        }

        //Date宆傊曄姺
        String year = argYMD.substring(0, 4);
        String month = argYMD.substring(4, 6);
        String date = argYMD.substring(6);
        return parseDate(year, month, date);
      }

      //***************************************************************************
      /**
       * 僨儕儈僞晅偒偺String宆(YYYY/MM/DD)傪Date宆偵曄姺偟傑偡丅
       * @param argYMD 擭寧擔(YYYY/MM/DD)
       * @param argDelimiter 僨儕儈僞
       * @return 巜掕偝傟偨擭寧擔偺Date宆
       */
      //***************************************************************************
      public static Date parseDate(String argYMD, String argDelimiter) {
        //僷儔儊乕僞僠僃僢僋
        if (argYMD == null || argYMD.length() != 10 || argDelimiter == null) {
          throw new IllegalArgumentException("argument is wrong");
        }

        int index[] = new int[2];
        index[0] = argYMD.indexOf(argDelimiter, 0);
        index[1] = argYMD.indexOf(argDelimiter, index[0] + 1);
        if (index[0] == -1 || index[1] == -1) {
          throw new IllegalArgumentException("argument is wrong");
        }

        //Date宆傊曄姺
        String year = argYMD.substring(0, index[0]);
        String month = argYMD.substring(index[0] + 1, index[1]);
        String date = argYMD.substring(index[1] + 1);
        return parseDate(year, month, date);
      }

      //***************************************************************************
      /**
       * 擭丒寧丒擔偺String宆傪Date宆偵曄姺偟傑偡丅
       * @param argYear 擭(4寘)
       * @param argMonth 寧(2寘)
       * @param argDate 擔(2寘)
       * @return 巜掕偝傟偨擭寧擔偺Date宆
       */
      //***************************************************************************
      public static Date parseDate(String argYear, String argMonth, String argDate) {
        //僷儔儊乕僞僠僃僢僋
        if (argYear == null || argMonth == null || argDate == null ||
            argYear.length() != 4 || argMonth.length() != 2 ||
            argDate.length() != 2) {
          throw new IllegalArgumentException("argument is wrong");
        }

        //Date宆傊曄姺
        Date date = createDate(Integer.parseInt(argYear),
                               Integer.parseInt(argMonth),
                               Integer.parseInt(argDate));
        return date;
      }

      //***************************************************************************
      /**
       * Date宆傪String宆(YYYYMMDD)偵曄姺偟傑偡丅
       * @param argYMD  擔晅宆
       * @return String宆(YYYYMMDD)
       */
      //***************************************************************************
      public static String parseString(Date argYMD) {
        //僷儔儊乕僞僠僃僢僋
        if (argYMD == null) {
          throw new IllegalArgumentException("argument is wrong");
        }

        //String宆傊曄姺
        SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
        return formatter.format(argYMD);
      }

      //***************************************************************************
      /**
       * Date宆傪String宆(YYYY/MM/DD)偵曄姺偟傑偡丅
       * @param argYMD  擔晅宆
       * @param argDelimiter 僨儕儈僞
       * @return String宆(YYYY/MM/DD)
       */
      //***************************************************************************
      public static String parseString(Date argYMD, String argDelimiter) {
        //僷儔儊乕僞僠僃僢僋
        if (argYMD == null || argDelimiter == null) {
          throw new IllegalArgumentException("argument is wrong");
        }

        //String宆傊曄姺
        String format = "yyyy" + argDelimiter + "MM" + argDelimiter + "dd";
        SimpleDateFormat formatter = new SimpleDateFormat(format);
        return formatter.format(argYMD);
      }

      //***************************************************************************
      /**
       * Date宆傪擭偺傒偺String宆(YYYY)偵曄姺偟傑偡丅
       * @param argYMD  擔晅宆
       * @return 擭偺傒偺String宆(YYYY)
       */
      //***************************************************************************
      public static String getYear(Date argYMD) {
        //僷儔儊乕僞僠僃僢僋
        if (argYMD == null) {
          throw new IllegalArgumentException("argument is wrong");
        }

        //String宆傊曄姺
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy");
        return formatter.format(argYMD);
      }

      //***************************************************************************
      /**
       * Date宆傪寧偺傒偺String宆(MM)偵曄姺偟傑偡丅
       * @param argYMD  擔晅宆
       * @return 寧偺傒偺String宆(MM)
       */
      //***************************************************************************
      public static String getMonth(Date argYMD) {
        //僷儔儊乕僞僠僃僢僋
        if (argYMD == null) {
          throw new IllegalArgumentException("argument is wrong");
        }

        //String宆傊曄姺
        SimpleDateFormat formatter = new SimpleDateFormat("MM");
        return formatter.format(argYMD);
      }

      //***************************************************************************
      /**
       * Date宆傪擔晅偺傒偺String宆(DD)偵曄姺偟傑偡丅
       * @param argYMD  擔晅宆
       * @return 擔晅偺傒偺String宆(DD)
       */
      //***************************************************************************
      public static String getDate(Date argYMD) {
        //僷儔儊乕僞僠僃僢僋
        if (argYMD == null) {
          throw new IllegalArgumentException("argument is wrong");
        }

        //String宆傊曄姺
        SimpleDateFormat formatter = new SimpleDateFormat("dd");
        return formatter.format(argYMD);
      }

      //***************************************************************************
      //private儊僜僢僪
      //***************************************************************************

      //***************************************************************************
      /**
       * 寧傗擔傪惍悢宆偐傜暥帤宆偵曄姺偟傑偡丅<br>
       * 侾寘偺悢抣偺応崌偼丄慜偵'0'傪晅梌偟傑偡丅
       *
       * @param     argValue  惍悢宆偺悢抣
       * @return    暥帤宆偺悢抣
       */
      //***************************************************************************
     private static String toCharacter(int argValue) {
        String value = Integer.toString(argValue);
        if (argValue < 10) {
          return "0" + value;
        } else {
          return value;
        }
      }

      //***************************************************************************
      /**
       * DateUtility.JAPANESE偺彂幃曄姺偺応崌偵暥帤楍偺嵟屻偵暥帤傪捛壛偟傑偡丅
       *
       * @param     argString 曄姺屻擔晅暥帤楍
       * @param     argType 曄姺彂幃<br>
       *            DateUtility.YYYYMMDD<br>
       *            DateUtility.YYYYMM<br>
       *            DateUtility.YYYY<br>
       *            DateUtility.YYMMDD<br>
       *            DateUtility.YYMM<br>
       *            DateUtility.YY<br>
       *            DateUtility.MMDD<br>
       *            DateUtility.MM<br>
       *            DateUtility.DD
       * @param     argYear 擭暥帤
       * @param     argMonth 寧暥帤
       * @param     argDate 擔暥帤
       * @return    彂幃曄姺偝傟偨暥帤楍
       */
      //***************************************************************************
      private static String addString(String argString, int argType, String argYear, String argMonth, String argDate) {
        String result = null;

        switch (argType) {
          case DateUtility.YYYYMMDD:
            result = argString + argDate;
            break;
          case DateUtility.YYYYMM:
            result = argString + argMonth;
            break;
          case DateUtility.YYYY:
            result = argString + argYear;
            break;
          case DateUtility.YYMMDD:
            result = argString + argDate;
            break;
          case DateUtility.YYMM:
            result = argString + argMonth;
            break;
          case DateUtility.YY:
            result = argString + argYear;
            break;
          case DateUtility.MMDD:
            result = argString + argDate;
            break;
          case DateUtility.MM:
            result = argString + argMonth;
            break;
          case DateUtility.DD:
            result = argString + argDate;
            break;
          default:
            throw new IllegalArgumentException("argType is error");
        }

        return result;
      }

      //***************************************************************************
      /**
       * Date宆傪嶌惉偟傑偡丅
       * @param argYear 擭
       * @param argMonth 寧
       * @param argDate 擔
       * @return 巜掕偝傟偨擭寧擔偺擔晅宆
       */
      //***************************************************************************
      private static Date createDate(int argYear, int argMonth, int argDate) {
        GregorianCalendar gregorianCalendar =
            new GregorianCalendar(argYear, argMonth - 1, argDate);
        gregorianCalendar.setLenient(false);
        return gregorianCalendar.getTime();
      }
    }

    posted on 2007-04-10 17:54 天外飛仙 閱讀(530) 評論(0)  編輯  收藏 所屬分類: java
    主站蜘蛛池模板: 天堂亚洲免费视频| 亚洲激情黄色小说| 最近2018中文字幕免费视频| 亚洲精品亚洲人成在线观看麻豆 | 老司机精品免费视频| 亚洲综合一区二区国产精品| 永久免费AV无码网站在线观看| 本道天堂成在人线av无码免费| 亚洲美女在线观看播放| 亚洲国产av一区二区三区| 最近免费中文字幕大全免费版视频| 亚洲国产成人AV网站| 精品亚洲aⅴ在线观看| 四虎影视免费永久在线观看| 久久久久高潮毛片免费全部播放 | 中文字幕亚洲综合小综合在线| 亚洲国产精品第一区二区三区| 亚欧免费视频一区二区三区| fc2成年免费共享视频网站| 亚洲jizzjizz在线播放久| 国产亚洲精品a在线无码| 日本一线a视频免费观看| 91精品免费观看| 久久精品成人免费观看97| 亚洲国产精品嫩草影院| 亚洲黄色三级网站| 亚洲色精品88色婷婷七月丁香 | 亚洲欧洲精品久久| 亚洲人JIZZ日本人| 全亚洲最新黄色特级网站 | 韩国18福利视频免费观看| 无码成A毛片免费| 国产国产人免费人成成免视频 | 特级无码毛片免费视频尤物| 人妻免费久久久久久久了| 亚洲精品无码成人| 亚洲videos| 亚洲天堂一区二区三区| 亚洲国产精品成人精品无码区| www亚洲一级视频com| 日本免费观看网站|