Apacheの構成ファイル設定方法
Java小手先技術集

TomcatでJavaプログラムを作成する場合の小手先技術集を紹介します。
  //==========================================================================
  // 文字列変換処理(JSP→Servlet:Shift-JIS→UNICODE)
  //==========================================================================
  private String strEncode(String strVal) throws UnsupportedEncodingException{
    if(strVal==null){
      return (null);
    }else{
      //Shift-JIS→UNICODE
      return (new String(strVal.getBytes("ISO-8859-1"),"JISAutoDetect"));
    }
  }

  //==========================================================================
  //機能:日付チェック
  //   @日付範囲チェック
  //   A日付>現在日チェック
  //入力:int year =年
  //   int month =月
  //   int day  =日
  //戻り値: "false" = 日付<=現在日、かつ日付範囲内(正常)
  //      "true"  = 日付>現在日、もしくは日付範囲外(異常)
  //==========================================================================
  private String CheckDate(int year, int month, int day) {
    int ileap = 0 ;
    Calendar gre = Calendar.getInstance() ;
    //---------------
    // 大の月、小の月定義
    //---------------
    int Day_Tab[] []={
            {0,31,28,31,30,31,30,31,31,30,31,30,31},
            {0,31,29,31,30,31,30,31,31,30,31,30,31},
          };

    //現在日を取得
    int gYear = gre.get(Calendar.YEAR) ;
    int gMonth = gre.get(Calendar.MONTH) + 1 ;
    int gDay = gre.get(Calendar.DATE) ;

    if(gYear < year){
      return "true" ;
    }

    if((month > 12) || (month < 1) || (day < 1)) {
      return "true" ;
    }

    if(gYear == year) {
      if(gMonth == month) {
        if(gDay < day) {
          return "true" ;
        }
      }else if(gMonth < month) {
        return "true" ;
      }
    }

    boolean bleap = (year % 4 == 0) && ((year % 100 != 0) || (year % 400 == 0)) ;
    if(bleap == true) {
      ileap = 1 ;
    }

    if(day > Day_Tab[ileap][month]) {
      return "true" ;
    }

    return "false" ;
  }

 //==========================================================================
 // 西暦から和暦を求める
 //==========================================================================
 public String SeirekiWareki(String strYYYYMMDD)
 {
  String strY;
  String strM;
  String strD;
  String strBirthDate;
  String strWarekiDate = "";
  int iY;
  int iM;
  int iD;

  strY = strYYYYMMDD.substring(0,4) ;
  strM = strYYYYMMDD.substring(5,7) ;
  strD = strYYYYMMDD.substring(8,10) ;

  System.out.println("西暦→和暦変換:年月日=" + strY + strM + strD);
  iY = Integer.parseInt(strY);  //<-----年:文字列から数値へ変換
  iM = Integer.parseInt(strM);  //<-----月:文字列から数値へ変換
  iD = Integer.parseInt(strD);  //<-----日:文字列から数値へ変換

  Calendar BirthDate = Calendar.getInstance();
  BirthDate.set( iY ,iM ,iD);
  System.out.println("iY ,iM ,iD="+ iY+ " " +iM +" " +iD); //<-----試験のためにコンソール画面に結果を表示
  //明治終了日
  Calendar EndMeiDate = Calendar.getInstance();
  EndMeiDate.set(1912, 7, 29);
  //大正開始日
  Calendar StartTaiDate = Calendar.getInstance();
  StartTaiDate.set(1912, 7, 30);
  //大正終了日
  Calendar EndTaiDate = Calendar.getInstance();
  EndTaiDate.set(1926, 12, 24);
  //昭和開始日
  Calendar StartShoDate = Calendar.getInstance();
  StartShoDate.set(1926, 12, 25);
  //昭和終了日
  Calendar EndShoDate = Calendar.getInstance();
  EndShoDate.set(1989, 1, 7);
  //平成開始日
  Calendar StartHeiDate = Calendar.getInstance();
  StartHeiDate.set(1989, 1, 8);
  
  int iWareki;
  String StrNengou;
  if(BirthDate.equals(EndMeiDate) == true) //<-----文字列の比較
  {
    iWareki = Integer.parseInt(strY) - 1867;
    if(iWareki == 1)
    {
      StrNengou = "元年";
    } else
    {
      StrNengou = Integer.toString(iWareki); //<-----数値から文字列へ変換
    }
    strWarekiDate = "明治" + StrNengou + "年" + strM + "月" + strD + "日";
  } else if(BirthDate.before(EndMeiDate) == true)
  {
    iWareki = Integer.parseInt(strY) - 1867;
    if(iWareki == 1)
    {
      StrNengou = "元年";
    } else
    {
      StrNengou = Integer.toString(iWareki);
    }
    strWarekiDate = "明治" + StrNengou + "年" + strM + "月" + strD + "日";
  } else if(BirthDate.equals(StartTaiDate) == true)
  {
    iWareki = Integer.parseInt(strY) - 1911;
    if(iWareki == 1)
    {
      StrNengou = "元年";
    } else
    {
      StrNengou = Integer.toString(iWareki);
    }
    strWarekiDate = "大正" + StrNengou + "年" + strM + "月" + strD + "日";
  } else if(BirthDate.equals(EndTaiDate) == true)
  {
    iWareki = Integer.parseInt(strY) - 1911;
    if(iWareki == 1)
    {
      StrNengou = "元年";
    } else
    {
      StrNengou = Integer.toString(iWareki);
    }
    strWarekiDate = "大正" + StrNengou + "年" + strM + "月" + strD + "日";
  } else if((BirthDate.after(StartTaiDate) == true) && (BirthDate.before(EndTaiDate) == true))
  {
    iWareki = Integer.parseInt(strY) - 1911;
    if(iWareki == 1)
    {
      StrNengou = "元年";
    } else
    {
      StrNengou = Integer.toString(iWareki);
    }
    strWarekiDate = "大正" + StrNengou + "年" + strM + "月" + strD + "日";
  } else if(BirthDate.equals(StartShoDate) == true)
  {
    iWareki = Integer.parseInt(strY) - 1925;
    if(iWareki == 1)
    {
      StrNengou = "元年";
    } else
    {
      StrNengou = Integer.toString(iWareki);
    }
    strWarekiDate = "昭和" + StrNengou + "年" + strM + "月" + strD + "日";
  } else if(BirthDate.equals(EndShoDate) == true)
  {
    iWareki = Integer.parseInt(strY) - 1925;
    if(iWareki == 1)
    {
      StrNengou = "元年";
    } else
    {
      StrNengou = Integer.toString(iWareki);
    }
    strWarekiDate = "昭和" + StrNengou + "年" + strM + "月" + strD + "日";
  } else if((BirthDate.after(StartShoDate) == true) && (BirthDate.before(EndShoDate) == true))
  {
    iWareki = Integer.parseInt(strY) - 1925;
    if(iWareki == 1)
    {
      StrNengou = "元年";
    } else
    {
      StrNengou = Integer.toString(iWareki);
    }
    strWarekiDate = "昭和" + StrNengou + "年" + strM + "月" + strD + "日";
  } else if(BirthDate.equals(StartHeiDate) == true)
  {
    iWareki = Integer.parseInt(strY) - 1988;
    if(iWareki == 1)
    {
      StrNengou = "元年";
    } else
    {
      StrNengou = Integer.toString(iWareki);
    }
    strWarekiDate = "平成" + StrNengou + "年" + strM + "月" + strD + "日";
  } else if(BirthDate.after(StartHeiDate) == true)
  {
    iWareki = Integer.parseInt(strY) - 1988;
    if(iWareki == 1)
    {
      StrNengou = "元";
    } else
    {
      StrNengou = Integer.toString(iWareki);
    }
    strWarekiDate = "平成" + StrNengou + "年" + strM + "月" + strD + "日";
  }
  return ( strWarekiDate );
 }

 //==========================================================================
 // 干支を取得する。
 //==========================================================================
 /**
  * 干支を取得するメソッド
  *
  * @return 干支を文字列で返す
  * エラーの場合はNULLを返す
 */
 public String getEto(String strYYYYMMDD)
 {
  // 十二支文字列情報
  String etoTbl[] = {"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥" };
  // 年を整数化します
  String strY;

  strY = strYYYYMMDD.substring(0,4) ;
  int yyyy = Integer.parseInt(strY);
  int i = (yyyy + 8) % 12;
  return etoTbl[i];
 }

 //==========================================================================
 //数値が存在する年(YYYY),月(MM),日(DD)であるかどうかをチェックする
 //==========================================================================
 /**
  *
  * 大小の月、閏年などもチェックする
  *
  * @param yyyy チェックする西暦年数値
  * @param mm チェックする月数値
  * @param dd チェックする日数値
  * @return チェック結果 true:正しい false:誤り
 */
 private boolean checkDate(int yyyy, int mm, int dd){
   // 年月日の正当性をチェック
   //引数の文字列表現を返す
   return checkDate(String.valueOf(yyyy)+"/"+String.valueOf(mm)+"/"+String.valueOf(dd))
;
 }

 //==========================================================================
 // 文字列が存在する年(YYYY),月(MM),日(DD)であるかどうかをチェックする
 //==========================================================================
 /**
  * 文字列が存在する年(YYYY),月(MM),日(DD)であるかどうかをチェックする
  * 大小の月、閏年などもチェックする
  *
  * @param yyyy チェックする西暦年文字列
  * @param mm チェックする月文字列
  * @param dd チェックする日文字列
  * @return チェック結果 true:正しい false:誤り
 */
 private boolean checkDate(String yyyy, String mm, String dd){
   return checkDate(yyyy+"/"+mm+"/"+dd);
 }

 //==========================================================================
 // 大小の月、閏年などもチェックする
 //==========================================================================
 /*
  *
  * 大小の月、閏年などもチェックする
  *
  * @param date チェックする西暦年月日文字列
  * 年と月と日は必ずスラッシュで区切られていること。
  * @return チェック結果 true:正しい false:誤り
 */
 private boolean checkDate(String date) {
   // 前後の空白を除去
   String d = new String(date.trim());
   // 日付フォーマッターを定義
   DateFormat df = DateFormat.getDateInstance();
   // 解析レベルを厳密にする
   df.setLenient(false);
   try {
     df.parse(d); // 入力年月日を解析
   } catch(ParseException e) {
     return false; // エラー
   }
   return true;
 }

HOME