|
@@ -0,0 +1,301 @@
|
|
|
+/*
|
|
|
+ ***************************************************************************************************
|
|
|
+ * Copyright �� 2009-2010 HANTE Information Co., Ltd. Seoul, Korea
|
|
|
+ * All rights reserved.
|
|
|
+ *
|
|
|
+ * �ý��� ��ƿ��Ƽ Ŭ����
|
|
|
+ *
|
|
|
+ * Programmer(s): shjung@hanteinfo.com
|
|
|
+ *
|
|
|
+ * REVISION HISTORY
|
|
|
+ * 1. [2010/12/22][VER-1.0][shjung] : created
|
|
|
+ * 2.
|
|
|
+ ***************************************************************************************************
|
|
|
+ */
|
|
|
+package com.its.utils;
|
|
|
+
|
|
|
+import org.apache.commons.lang3.time.FastDateFormat;
|
|
|
+
|
|
|
+import java.text.ParseException;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.Calendar;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.GregorianCalendar;
|
|
|
+import java.util.Locale;
|
|
|
+
|
|
|
+/**
|
|
|
+ * A class to SysUtils
|
|
|
+ *
|
|
|
+ *
|
|
|
+ */
|
|
|
+public final class SysUtils
|
|
|
+{
|
|
|
+
|
|
|
+ private SysUtils()
|
|
|
+ {
|
|
|
+ }
|
|
|
+ public static int toInt(String str, int defaultValue) {
|
|
|
+ if (str == null) {
|
|
|
+ return defaultValue;
|
|
|
+ } else {
|
|
|
+ try {
|
|
|
+ return Integer.parseInt(str);
|
|
|
+ } catch (NumberFormatException var3) {
|
|
|
+ return defaultValue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ public static String getMethodName() {
|
|
|
+ return Thread.currentThread().getStackTrace()[1].getMethodName();
|
|
|
+ }
|
|
|
+
|
|
|
+ public static int parseInteger(String paramVal, int defVal) {
|
|
|
+ int result = defVal;
|
|
|
+ try {
|
|
|
+ result = Integer.parseInt(paramVal);
|
|
|
+ } catch(Exception e) {
|
|
|
+
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static float parseFloat(String paramVal, float defVal) {
|
|
|
+ float result = defVal;
|
|
|
+ try {
|
|
|
+ result = Float.parseFloat(paramVal);
|
|
|
+ } catch(Exception e) {
|
|
|
+
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static double parseDouble(String paramVal, double defVal) {
|
|
|
+ double result = defVal;
|
|
|
+ try {
|
|
|
+ result = Double.parseDouble(paramVal);
|
|
|
+ } catch(Exception e) {
|
|
|
+
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 현재시각을 문자열로 얻는다.
|
|
|
+ *
|
|
|
+ */
|
|
|
+ public static String getSysTimeStr() {
|
|
|
+ SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ java.util.Date dtLog = new java.util.Date();
|
|
|
+ return sdfDate.format(dtLog);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static String getSysTime()
|
|
|
+ {
|
|
|
+ SimpleDateFormat sdfDate = new SimpleDateFormat("yyyyMMddHHmmss");
|
|
|
+ java.util.Date dtLog = new java.util.Date();
|
|
|
+ return sdfDate.format(dtLog);
|
|
|
+/*
|
|
|
+ Calendar now = Calendar.getInstance();
|
|
|
+ String year = "0000" + now.get(Calendar.YEAR);
|
|
|
+ String mon = "00" + now.get(Calendar.MONTH) + 1;
|
|
|
+ String day = "00" + now.get(Calendar.DAY_OF_MONTH);
|
|
|
+ String hour = "00" + now.get(Calendar.HOUR_OF_DAY);
|
|
|
+ String min = "00" + now.get(Calendar.MINUTE);
|
|
|
+ String sec = "00" + now.get(Calendar.SECOND);
|
|
|
+
|
|
|
+ year = year.substring(year.length() - 4, year.length());
|
|
|
+ mon = mon.substring( mon.length() - 2, mon.length());
|
|
|
+ day = day.substring( day.length() - 2, day.length());
|
|
|
+ hour = hour.substring(hour.length() - 2, hour.length());
|
|
|
+ min = min.substring( min.length() - 2, min.length());
|
|
|
+ sec = sec.substring( sec.length() - 2, sec.length());
|
|
|
+
|
|
|
+ return year+mon+day+hour+min+sec;
|
|
|
+*/
|
|
|
+ }
|
|
|
+
|
|
|
+ public static int gapTime(String startTm, String endTm, int calcType) {
|
|
|
+
|
|
|
+ if (startTm == null || startTm.equals("") || startTm.length() != 14) {
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ if (endTm == null || endTm.equals("") || endTm.length() != 14) {
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+
|
|
|
+ FastDateFormat fastDateFormat = FastDateFormat.getInstance("yyyyMMddHHmmss", new Locale("ko_KR")); //Locale.getDefault());
|
|
|
+
|
|
|
+ Date startDateTime, endDateTime;
|
|
|
+ try {
|
|
|
+ startDateTime = fastDateFormat.parse(startTm);
|
|
|
+ endDateTime = fastDateFormat.parse(endTm);
|
|
|
+ } catch (ParseException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+
|
|
|
+ GregorianCalendar gcStartDateTime = new GregorianCalendar();
|
|
|
+ GregorianCalendar gcEndDateTime = new GregorianCalendar();
|
|
|
+ gcStartDateTime.setTime(startDateTime);
|
|
|
+ gcEndDateTime.setTime(endDateTime);
|
|
|
+
|
|
|
+ long gap = gcEndDateTime.getTimeInMillis() - gcStartDateTime.getTimeInMillis();
|
|
|
+ long hour = gap / 1000L / 60L / 60L;
|
|
|
+ long min = gap / 1000L / 60L;
|
|
|
+ long second = gap / 1000L;
|
|
|
+ if (Calendar.HOUR == calcType)
|
|
|
+ return (int)hour;
|
|
|
+ if (Calendar.MINUTE == calcType)
|
|
|
+ return (int)min;
|
|
|
+ if (Calendar.SECOND == calcType)
|
|
|
+ return (int)second;
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static long ipToLong(String ipAddress) {
|
|
|
+ String[] ipAddressInArray = ipAddress.split("\\.");
|
|
|
+ long result = 0;
|
|
|
+ for (int i = 0; i < ipAddressInArray.length; i++) {
|
|
|
+ int power = 3 - i;
|
|
|
+ int ip = Integer.parseInt(ipAddressInArray[i]);
|
|
|
+ result += ip * Math.pow(256, power);
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ public static long ipToLong2(String ipAddress) {
|
|
|
+ long result = 0;
|
|
|
+ String[] ipAddressInArray = ipAddress.split("\\.");
|
|
|
+
|
|
|
+ for (int i = 3; i >= 0; i--) {
|
|
|
+ long ip = Long.parseLong(ipAddressInArray[3 - i]);
|
|
|
+ //left shifting 24,16,8,0 and bitwise OR
|
|
|
+ //1. 192 << 24
|
|
|
+ //1. 168 << 16
|
|
|
+ //1. 1 << 8
|
|
|
+ //1. 2 << 0
|
|
|
+ result |= ip << (i * 8);
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ public static String longToIp(long i) {
|
|
|
+
|
|
|
+ return ((i >> 24) & 0xFF) +
|
|
|
+ "." + ((i >> 16) & 0xFF) +
|
|
|
+ "." + ((i >> 8) & 0xFF) +
|
|
|
+ "." + (i & 0xFF);
|
|
|
+
|
|
|
+ }
|
|
|
+ public static String longToIp2(long ip) {
|
|
|
+ StringBuilder sb = new StringBuilder(15);
|
|
|
+
|
|
|
+ for (int i = 0; i < 4; i++) {
|
|
|
+
|
|
|
+ // 1. 2
|
|
|
+ // 2. 1
|
|
|
+ // 3. 168
|
|
|
+ // 4. 192
|
|
|
+ sb.insert(0, Long.toString(ip & 0xff));
|
|
|
+
|
|
|
+ if (i < 3) {
|
|
|
+ sb.insert(0, '.');
|
|
|
+ }
|
|
|
+
|
|
|
+ // 1. 192.168.1.2
|
|
|
+ // 2. 192.168.1
|
|
|
+ // 3. 192.168
|
|
|
+ // 4. 192
|
|
|
+ ip = ip >> 8;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return sb.toString();
|
|
|
+ }
|
|
|
+ public static String byteArrayToHex(byte[] AData)
|
|
|
+ {
|
|
|
+ if ((AData == null) || (AData.length == 0)) {
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+
|
|
|
+ int ALen = AData.length;
|
|
|
+ int line = ALen / 16;
|
|
|
+ int pos;
|
|
|
+
|
|
|
+ StringBuffer sb = new StringBuffer((ALen*3)+line);
|
|
|
+ sb.append("\r\n");
|
|
|
+ for (int ii = 0; ii < ALen; ii += 16)
|
|
|
+ {
|
|
|
+ for (int jj = 0; jj < 16; jj++) {
|
|
|
+ pos = ii + jj;
|
|
|
+ if (pos < ALen) {
|
|
|
+ String hexNumber = "0" + Integer.toHexString(0xFF & AData[pos]).toUpperCase();
|
|
|
+ sb.append(hexNumber.substring(hexNumber.length() - 2));
|
|
|
+ sb.append(" ");
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ sb.append("\r\n");
|
|
|
+ }
|
|
|
+ return sb.toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ public static int getBitValue(byte b, int pos) {
|
|
|
+ int val = (b >> pos) & 0x01;
|
|
|
+ //int val = (b >> (7-pos)) & 0x01;
|
|
|
+ return val;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static String bytes2String(byte[] data) {
|
|
|
+ StringBuilder sb = new StringBuilder(data.length);
|
|
|
+ for (int ii = 0; ii < data.length; ++ ii) {
|
|
|
+ if (data[ii] >= 0x21 && data[ii] <= 0x7E) {
|
|
|
+ sb.append((char) data[ii]);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ break; //FOR VDS Protocol
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return sb.toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ public static short swapEndian(short x)
|
|
|
+ {
|
|
|
+ return (short)(x << 8 | x >> 8 & 0xFF);
|
|
|
+ }
|
|
|
+ public static int swapEndian(int x)
|
|
|
+ {
|
|
|
+ return swapEndian((short)x) << 16 | swapEndian((short)(x >> 16)) & 0xFFFF;
|
|
|
+ }
|
|
|
+
|
|
|
+ // byte[] byteArray = ByteBuffer.allocate(4).putInt(value).array();
|
|
|
+ public static byte[] intToByteArray(int value) {
|
|
|
+ byte[] byteArray = new byte[4];
|
|
|
+ byteArray[0] = (byte)(value >> 24);
|
|
|
+ byteArray[1] = (byte)(value >> 16);
|
|
|
+ byteArray[2] = (byte)(value >> 8);
|
|
|
+ byteArray[3] = (byte)(value);
|
|
|
+ return byteArray;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static int byteArrayToInt(byte bytes[]) {
|
|
|
+ return ((((int)bytes[0] & 0xff) << 24) |
|
|
|
+ (((int)bytes[1] & 0xff) << 16) |
|
|
|
+ (((int)bytes[2] & 0xff) << 8) |
|
|
|
+ (((int)bytes[3] & 0xff)));
|
|
|
+ }
|
|
|
+ public static byte[] floatToByteArray(float value) {
|
|
|
+ int floatValue = Float.floatToIntBits(value);
|
|
|
+ return intToByteArray(floatValue);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static float byteArrayToFloat(byte bytes[]) {
|
|
|
+ int value = byteArrayToInt(bytes);
|
|
|
+ return Float.intBitsToFloat(value);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static long toUnsigned(int value) {
|
|
|
+ return ((long)value & 0xFFFFFFFFL);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|