StringNew.java
上传用户:mingda
上传日期:2017-06-20
资源大小:27691k
文件大小:14k
源码类别:

OA系统

开发平台:

Java

  1. package com.gforce.currency;
  2. /**
  3.  * <p>Title: 吉力科技办公自动化系统</p>
  4.  * <p>Description: 吉力科技办公自动化系统</p>
  5.  * <p>Copyright: 版权所有 2003 (c) 西安吉力科技发展有限公司  Copyright (c) 2003 GForce Sceince & Technology</p>
  6.  * <p>Company: 西安吉力科技发展有限公司 (GForce Sceince & Technology)</p>
  7.  * @author 马登军
  8.  * @version 1.0
  9.  */
  10. import java.text.*;
  11. import java.util.*;
  12. import java.security.*;
  13. import javax.crypto.*;
  14. public class StringNew {
  15.   /**
  16.    * 创建私有构造函数,防止程序创建该对象
  17.    */
  18.   private StringNew() {
  19.   }
  20.   /**
  21.    * 将从request获取的字符串进行解码
  22.    * @param strValue  解码前的原始字符串
  23.    * @return  解码后的字符串
  24.    */
  25.   public static String RequestGetDecode(String strValue) {
  26.     String strReturnValue = "";
  27.     try {
  28.       strReturnValue = new String(strValue.getBytes("iso8859_1"));
  29.     }
  30.     catch (Exception err) {
  31.       SystemOut.ErrOut("从request获取字符串解码时出错!");
  32.     }
  33.     return strReturnValue;
  34.   }
  35.   /**
  36.    * 对向request设置的字符串变量进行编码
  37.    * @param strValue  编码前的原始字符串
  38.    * @return  编码后的字符串
  39.    */
  40.   public static String RequestSetEncode(String strValue) {
  41.     String strReturnValue = strValue;
  42.     return strReturnValue;
  43.   }
  44.   /**
  45.    * 将从session获取的字符串进行解码
  46.    * @param strValue  解码前的原始字符串
  47.    * @return  解码后的字符串
  48.    */
  49.   public static String SessionGetDecode(String strValue) {
  50.     String strReturnValue = "";
  51.     try {
  52.       //strReturnValue = new String(strValue.getBytes("iso8859_1"));
  53.       strReturnValue = strValue;
  54.     }
  55.     catch (Exception err) {
  56.       SystemOut.ErrOut("从session获取字符串解码时出错!");
  57.     }
  58.     return strReturnValue;
  59.   }
  60.   /**
  61.    * 对向session设置的字符串变量进行编码
  62.    * @param strValue  编码前的原始字符串
  63.    * @return  编码后的字符串
  64.    */
  65.   public static String SessionSetEncode(String strValue) {
  66.     String strReturnValue = "";
  67.     try {
  68.       //strReturnValue = new String(strValue.getBytes("iso8859_1"));
  69.       strReturnValue = strValue;
  70.     }
  71.     catch (Exception err) {
  72.       SystemOut.ErrOut("向session设置字符串编码时出错!");
  73.     }
  74.     return strReturnValue;
  75.   }
  76.   /**
  77.    * 将从数据库中获取的字符串进行解码
  78.    * @param strValue  解码前的原始字符串
  79.    * @return  解码后的字符串
  80.    */
  81.   public static String DbGetDecode(String strValue) {
  82.     String strReturnValue = "";
  83.     try {
  84.       strReturnValue = new String(strValue.getBytes("iso8859_1"));
  85.     }
  86.     catch (Exception err) {
  87.       SystemOut.ErrOut("从数据库获取字符串解码时出错!");
  88.     }
  89.     return strReturnValue;
  90.   }
  91.   /**
  92.    * 对向数据库设置的字符串变量进行编码
  93.    * @param strValue  编码前的原始字符串
  94.    * @return  编码后的字符串
  95.    */
  96.   public static String DbSetEncode(String strValue) {
  97.     String strReturnValue = strValue;
  98.     return strReturnValue;
  99.   }
  100.   /**
  101.    * 将字符串日期转换成制定格式的新日期字符串
  102.    * @param strOldDate  旧的字符串日期
  103.    * @param strNewDateFormat  新的日期字符串格式
  104.    * @return  新的日期字符串
  105.    */
  106.   public static String GetDateString(String strOldDate, String strNewDateFormat) {
  107.     try {
  108.       SimpleDateFormat sdfDateFormat = new SimpleDateFormat(
  109.           "yyyy-MM-dd HH:mm:ss.S");
  110.       if (strOldDate.length() == 10) {
  111.         strOldDate += " 00:00:00.000";
  112.       }
  113.       else if (strOldDate.length() == 13) {
  114.         strOldDate += ":00:00.000";
  115.       }
  116.       else if (strOldDate.length() == 16) {
  117.         strOldDate += ":00.000";
  118.       }
  119.       else if (strOldDate.length() == 19) {
  120.         strOldDate += ".000";
  121.       }
  122.       Date dateOldDate = sdfDateFormat.parse(strOldDate);
  123.       return GetDateString(dateOldDate, strNewDateFormat);
  124.     }
  125.     catch (Exception err) {
  126.       SystemOut.InfoOut("字符串转换日期格式时失败:" + strOldDate + " to " +
  127.                         strNewDateFormat);
  128.       return "";
  129.     }
  130.   }
  131.   /**
  132.    * 将日期转换为制定格式的日期字符串
  133.    * @param dateOldDate   旧的日期
  134.    * @param strNewDateFormat  新的日期字符串格式
  135.    * @return   新的日期字符串
  136.    */
  137.   public static String GetDateString(Date dateOldDate, String strNewDateFormat) {
  138.     try {
  139.       SimpleDateFormat sdDateFormat = new SimpleDateFormat(strNewDateFormat);
  140.       SimpleDateFormat sdfDateFormat1 = new SimpleDateFormat(
  141.           "yyyy-MM-dd HH:mm:ss.S");
  142.       Date dateOldDate1 = sdfDateFormat1.parse("1900-01-01 00:00:00.0");
  143.       String strNewDate = sdfDateFormat1.format(dateOldDate);
  144.       String strOldDate = sdfDateFormat1.format(dateOldDate1);
  145.       if (!strNewDate.equalsIgnoreCase(strOldDate)) {
  146.         return sdDateFormat.format(dateOldDate);
  147.       }
  148.       else {
  149.         return "";
  150.       }
  151.     }
  152.     catch (Exception err) {
  153.       SystemOut.InfoOut("转换日期格式时失败:" + dateOldDate.toString() + " to " +
  154.                         strNewDateFormat);
  155.       return "";
  156.     }
  157.   }
  158.   /**
  159.    * 根据记录总数和每页的记录数计算记录页数
  160.    * @param iRecordCount  记录总数
  161.    * @param iPageSize  每页的记录数
  162.    * @return  记录的页数
  163.    */
  164.   public static int getPageCount(int iRecordCount, int iPageSize) {
  165.     try {
  166.       if (iPageSize < 1) {
  167.         iPageSize = 1;
  168.       }
  169.       return (iRecordCount % iPageSize == 0) ? (iRecordCount / iPageSize) :
  170.           ( (iRecordCount / iPageSize) + 1);
  171.     }
  172.     catch (Exception err) {
  173.       SystemOut.ErrOut("获取页面总数时出错,记录条数=" + iRecordCount + ",页面大小=" + iPageSize +
  174.                        "");
  175.       return 1;
  176.     }
  177.   }
  178.   /**
  179.    * 根据原始密码生成加密过的密码
  180.    * @param strOldPassword 原始密码
  181.    * @return  经过加密的密码
  182.    */
  183.   public static String getEncodePassword(String strOldPassword) {
  184.     String strNewPassword = "";
  185.     try
  186.     {
  187.       byte[] b = strOldPassword.getBytes();
  188.       String stmp = "";
  189.       for (int n = 0; n < b.length; n++) {
  190.         stmp = Integer.toHexString(b[n] & 0xff);
  191.         if (stmp.length() == 1) {
  192.           strNewPassword = String.valueOf(String.valueOf( (new StringBuffer(
  193.               String.valueOf(
  194.               String.valueOf(strNewPassword)))).append("0").append(stmp)));
  195.         }
  196.         else {
  197.           strNewPassword = String.valueOf(strNewPassword) + String.valueOf(stmp);
  198.         }
  199.       }
  200.       strNewPassword = strNewPassword.toUpperCase();
  201.       b = strNewPassword.getBytes();
  202.       strNewPassword = "";
  203.       for (int n = 0; n < b.length; n++) {
  204.         stmp = Integer.toHexString(b[n] & 0xff);
  205.         if (stmp.length() == 1) {
  206.           strNewPassword = String.valueOf(String.valueOf( (new StringBuffer(
  207.               String.valueOf(
  208.               String.valueOf(strNewPassword)))).append("0").append(stmp)));
  209.         }
  210.         else {
  211.           strNewPassword = String.valueOf(strNewPassword) + String.valueOf(stmp);
  212.         }
  213.       }
  214.     }
  215.     catch(Exception err){}
  216.     return strNewPassword;
  217.   }
  218.   /**
  219.    * 根据加密过的密码生成原始密码
  220.    * @param strOldPassword 加密过的密码
  221.    * @return  原始密码
  222.    */
  223.   public static String getDisencodePassword(String strOldPassword) {
  224.     String stmp = "";
  225.     String strNewPassword = "";
  226.     try
  227.     {
  228.       char c[] = new char[strOldPassword.length() / 2];
  229.       for (int n = 0; n < strOldPassword.length() / 2; n++) {
  230.         stmp = strOldPassword.substring(2 * n, 2 * n + 2);
  231.         c[n] += ( (byte) Integer.parseInt(stmp, 16));
  232.       }
  233.       strNewPassword = String.valueOf(c);
  234.       char cc[] = new char[strNewPassword.length() / 2];
  235.       for (int n = 0; n < strNewPassword.length() / 2; n++) {
  236.         stmp = strNewPassword.substring(2 * n, 2 * n + 2);
  237.         cc[n] += ( (byte) Integer.parseInt(stmp, 16));
  238.       }
  239.       strNewPassword = String.valueOf(cc);
  240.     }
  241.     catch(Exception err){}
  242.     return strNewPassword;
  243.   }
  244.   /**
  245.    * 获取两个IDs字符串的交集
  246.    * @param strIDs1 String IDs1
  247.    * @param strIDs2 String IDs2
  248.    * @return String 两个IDs字符串的交集
  249.    */
  250.   public static String getIntersectionOfIDs(String strIDs1,String strIDs2)
  251.   {
  252.     String strTemp = "";
  253.     if(strIDs1.length()<1||strIDs2.length()<1)
  254.     {
  255.       return "";
  256.     }
  257.     else
  258.     {
  259.       if(strIDs1.length()>strIDs2.length())
  260.       {
  261.         strTemp = strIDs1;
  262.         strIDs1=strIDs2;
  263.         strIDs2=strIDs1;
  264.         strTemp = "";
  265.       }
  266.       else
  267.       {
  268.       }
  269.       if(strIDs1.indexOf(",")>=0 && strIDs2.indexOf(",")>=0)
  270.       {
  271.         String strID1[] = strIDs1.split(",");
  272.         strIDs2="," + strIDs2 + ",";
  273.         for(int i = 0; i < strID1.length; i++)
  274.         {
  275.           if(strIDs2.indexOf("," + strID1[i] + ",")>=0)
  276.           {
  277.             strTemp += "," + strID1[i];
  278.           }
  279.           else
  280.           {
  281.           }
  282.         }
  283.       }
  284.       else
  285.       {
  286.         strIDs1 += "," + strIDs1 + ",";
  287.         strIDs2 += "," + strIDs2 + ",";
  288.         if(strIDs1.indexOf(strIDs2)>=0)
  289.         {
  290.           strTemp = strIDs2.substring(1,strIDs2.length()-1);
  291.         }
  292.         else if(strIDs2.indexOf(strIDs1)>=0)
  293.         {
  294.           strTemp = strIDs1.substring(1,strIDs1.length()-1);
  295.         }
  296.         else
  297.         {
  298.           strTemp = "";
  299.         }
  300.       }
  301.     }
  302.     return strTemp;
  303.   }
  304.   /**
  305.    * 获取两个IDs字符串的并集
  306.    * @param strIDs1 String IDs1
  307.    * @param strIDs2 String IDs2
  308.    * @return String 两个IDs字符串的交集
  309.    */
  310.   public static String getMergeOfIDs(String strIDs1,String strIDs2)
  311.   {
  312.     String strTemp = "";
  313.     if(strIDs1.length()<1)
  314.     {
  315.       return strIDs2;
  316.     }
  317.     else if(strIDs2.length()<1)
  318.     {
  319.       return strIDs1;
  320.     }
  321.     else
  322.     {
  323.       if(strIDs1.length()>strIDs2.length())
  324.       {
  325.         strTemp = strIDs1;
  326.         strIDs1=strIDs2;
  327.         strIDs2=strIDs1;
  328.         strTemp = "";
  329.       }
  330.       else
  331.       {
  332.       }
  333.       if(strIDs1.indexOf(",")>=0 && strIDs2.indexOf(",")>=0)
  334.       {
  335.         String strID1[] = strIDs1.split(",");
  336.         strIDs2="," + strIDs2 + ",";
  337.         for(int i = 0; i < strID1.length; i++)
  338.         {
  339.           if(strIDs2.indexOf("," + strID1[i] + ",")<0)
  340.           {
  341.             strIDs2 +=  strID1[i] + ",";
  342.           }
  343.           else
  344.           {
  345.           }
  346.         }
  347.         strTemp = strIDs2;
  348.       }
  349.       else
  350.       {
  351.         strIDs1 += "," + strIDs1 + ",";
  352.         strIDs2 += "," + strIDs2 + ",";
  353.         if(strIDs1.indexOf(strIDs2)>=0)
  354.         {
  355.           strTemp = strIDs1.substring(1,strIDs2.length()-1);
  356.         }
  357.         else if(strIDs2.indexOf(strIDs1)>=0)
  358.         {
  359.           strTemp = strIDs2.substring(1,strIDs1.length()-1);
  360.         }
  361.         else
  362.         {
  363.           strTemp = strIDs1.substring(1,strIDs2.length()-1) + strIDs2.substring(0,strIDs1.length()-1);
  364.         }
  365.       }
  366.     }
  367.     return strTemp;
  368.   }
  369.   /**
  370.    * 从原IDs1字符串中去掉在IDs2中包括的在IDs后得到新的IDs
  371.    * @param strIDs1 String IDs1
  372.    * @param strIDs2 String IDs2
  373.    * @return String 从原IDs1字符串中去掉在IDs2中包括的在IDs后得到的新的IDs
  374.    */
  375.   public static String getSubtractOfIDs(String strIDs1,String strIDs2)
  376.   {
  377.     String strResult = "";
  378.     if(strIDs1.length()<1)
  379.     {
  380.       strResult = "";
  381.     }
  382.     else if(strIDs2.length()<1)
  383.     {
  384.       strResult = strIDs1;
  385.     }
  386.     else
  387.     {
  388.       if(strIDs1.indexOf(",")>=0)
  389.       {
  390.         String strID1[] = strIDs1.split(",");
  391.         for(int i = 0; i < strID1.length; i++)
  392.         {
  393.           if(("," + strIDs2 + ",").indexOf("," + strID1[i] + ",")<0)
  394.           {
  395.             if(i>0)strResult += ",";
  396.             strResult += strID1[i];
  397.           }
  398.           else
  399.           {
  400.           }
  401.         }
  402.       }
  403.       else if(("," + strIDs2 + ",").indexOf("," + strIDs1 + ",")>0)
  404.       {
  405.         strResult = strIDs1;
  406.       }
  407.       else
  408.       {
  409.         strResult = "";
  410.       }
  411.     }
  412.     return strResult;
  413.   }
  414.   /**
  415.    * 获取系统还可以试用的天数:<br>
  416.    * -112 表示软件系统试用期限已到<br>
  417.    * 1000 表示正式版软件系统,可以无限期使用<br>
  418.    * 999 表示系统正在试用期限内,且没有到警戒提示日期内<br>
  419.    * 其他 表示系统还可以试用的天数
  420.    * @return int 系统还可以试用的天数
  421.    */
  422.   public static int getTryDays()
  423.   {
  424.     String strNow = StringNew.GetDateString(new java.util.Date(), "yyyy-MM-dd");
  425.     String strExpDate = StringNew.getDisencodePassword(SystemParament.getParament("expdate"));
  426.     String strMaxAlertDays = StringNew.getDisencodePassword(SystemParament.getParament("maxalertdays"));
  427.     int iMaxAlertDays = 10;
  428.     try
  429.     {
  430.       if(strMaxAlertDays.length()>0)
  431.       {
  432.         iMaxAlertDays = Integer.parseInt(strMaxAlertDays,10);
  433.       }
  434.       if(iMaxAlertDays>60||iMaxAlertDays<0)
  435.       {
  436.         iMaxAlertDays = 10;
  437.       }
  438.     }
  439.     catch(Exception err){}
  440.     if(strExpDate.equalsIgnoreCase("2088-08-08"))
  441.     {
  442.       return 1000;
  443.     }
  444.     else if (strNow.compareTo(strExpDate) > 0)
  445.     {
  446.       SystemOut.ErrOut("试用版软件,试用已经过期,请与029-88453031联系!");
  447.       return -112;
  448.     }
  449.     else
  450.     {
  451.       SimpleDateFormat sdDateFormat = new SimpleDateFormat("yyyy-MM-dd");
  452.       try
  453.       {
  454.         Date dateNow = sdDateFormat.parse(strNow);
  455.         Date dateExpDate = sdDateFormat.parse(strExpDate);
  456.         long lLeftDays = (dateExpDate.getTime() - dateNow.getTime()) / 24l *
  457.             60l * 60l * 1000l;
  458.         if (iMaxAlertDays >= lLeftDays) {
  459.           return (int) lLeftDays;
  460.         }
  461.         else {
  462.           return 999;
  463.         }
  464.       }
  465.       catch(Exception err)
  466.       {
  467.         return -112;
  468.       }
  469.     }
  470.   }
  471.   /**
  472.    * 从字符串中返回Float数值
  473.    * @param strValue String 包含Float数值的字符串
  474.    * @return float Float数值
  475.    */
  476.   public static float getFloatFromString(String strValue)
  477.   {
  478.       return getFloatFromString(strValue,0.0f);
  479.   }
  480.   /**
  481.    * 从字符串中返回Float数值
  482.    * @param strValue String 包含Float数值的字符串
  483.    * @param fDefaultValue float 默认值
  484.    * @return float Float数值
  485.    */
  486.   public static float getFloatFromString(String strValue,float fDefaultValue)
  487.     {
  488.         try
  489.         {
  490.            return Float.parseFloat(strValue);
  491.         }
  492.         catch(Exception err)
  493.         {
  494.             return fDefaultValue;
  495.         }
  496.     }
  497. }