package com.ways.app.dpca.utils; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 公用类 * @author linyoucheng * @date 2014-1-14 * @company ways */ public class Convert { public static Date StringToDate(String str){ Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); if(str!=null&&(!str.trim().equals(""))){ try { date = sdf.parse(str); } catch (Exception e) { e.printStackTrace(); } } return date; } public static String dateToString(Date date){ String s = null; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); if(date!=null){ try { s = sdf.format(date); } catch (Exception e) { e.printStackTrace(); } } return s; } /** * 判断时间大于或者等于当天 * * @param day * 时间 * @return */ public static boolean isGreaterOrEquToday(Date day) { java.util.Calendar tc = Calendar.getInstance(); tc.setTime(day); Calendar td = Calendar.getInstance(); td.set(Calendar.HOUR_OF_DAY, 0); td.set(Calendar.MINUTE, 0); td.set(Calendar.SECOND, 0); td.set(Calendar.MILLISECOND, 0); return tc.after(td) || tc.equals(td); } /** * 判断时间小于或者等于当天 * * @param day * 时间 * @return */ public static boolean isLessOrEquToday(Date day) { java.util.Calendar tc = Calendar.getInstance(); tc.setTime(day); Calendar td = Calendar.getInstance(); td.set(Calendar.HOUR_OF_DAY, 0); td.set(Calendar.MINUTE, 0); td.set(Calendar.SECOND, 0); td.set(Calendar.MILLISECOND, 0); return tc.before(td) || tc.equals(td); } /** * @Title: isToday * @Description: 判断day日期是否是今天 * @param day * @return * @throws */ public static boolean isToday(Date day) { java.util.Calendar tc = Calendar.getInstance(); tc.setTime(day); Calendar td = Calendar.getInstance(); return tc.get(Calendar.YEAR) == td.get(Calendar.YEAR) && tc.get(Calendar.MONTH) == td.get(Calendar.MONTH) && tc.get(Calendar.DAY_OF_MONTH) == td .get(Calendar.DAY_OF_MONTH); } /** * @Title: isToday * @Description: 判断是否是当月 * @param day * @return * @throws */ public static boolean isCurrentMonth(Date date) { Calendar c = Calendar.getInstance(); c.setTime(date); Calendar now = Calendar.getInstance(); boolean bl = c.get(Calendar.YEAR) == now.get(Calendar.YEAR)&& c.get(Calendar.MONTH) == now.get(Calendar.MONTH); return bl; } /** * 获取前N年到当前年 * @param num 多少年 * @return */ public static String getYearStr(int num,int endYear) { //Calendar now = Calendar.getInstance(); String yearStr = ""; for (int i = 0; i < num; i++) { yearStr+=(endYear-i)+","; } if(yearStr.length()>1){ yearStr = yearStr.substring(0,yearStr.length()-1); } return yearStr; } /** * 两整数相除 * @param x * @param y * @return */ public static Double division(Integer x,Integer y){ if(x==null||y==null){ return -1d; } Double d = -1d; try { if(y!=0){ d = (double)x/(double)y; } if(d.isInfinite()){//如果是无穷大或无穷小,则设为NULL d = -1d; } } catch (Exception e) { } return d; } /** * 截取一个小数的方法 * @param d double类型的数据 * @return 保留小数后一位的字符串 */ public static String convertShortString(Double d){ String s = null; if(d!=null){ if(d==-1){ s = "-"; }else{ double db = (double)Math.round(d*1000)/10; s = db+"%"; } } return s; } /** * 截取N小数的方法 * @param d double类型的数据 * @return 保留N位小数后一位的字符串 */ public static String convertShortString(Double d,int n){ if(n<=0){ n=0; } String s = null; if(d!=null){ if(n==0){ int db = (int)(Math.round(d*Math.pow(10, n+2))/Math.pow(10, n)); s = db+"%"; }else{ double db = (double)Math.round(d*Math.pow(10, n+2))/Math.pow(10, n); s = db+"%"; } }else{ s = "-"; } return s; } /** * 截取N小数的方法,正数在前面加加号 * @param d double类型的数据 * @return 保留N位小数后一位的字符串 */ public static String convertShortStringChange(Double d,int n){ if(n<=0){ n=0; } String s = null; if(d!=null){ if(n==0){ int db = (int)(Math.round(d*Math.pow(10, n+2))/Math.pow(10, n)); s = db+"%"; }else{ double db = (double)Math.round(d*Math.pow(10, n+2))/Math.pow(10, n); s = db+"%"; } if(d>0){ s = "+"+s; } }else{ s = "-"; } return s; } /** * 浮点型匹配N位小数 * @param d 浮点型 * @param n 精度 * @return N位精度的字符串 */ public static String formatNPrecision(Double d,int n){ if(d==null){ return null; } String fm = "%0$02."+n+"f"; String s = String.format(fm, d); return s; } /** * 浮点型*100匹配N位小数 * @param d 浮点型 * @param n 精度 * @return N位精度的字符串 */ public static String formatNPrecisionPercent(Double d,int n){ if(d==null){ return null; } d = d*100; String fm = "%0$02."+n+"f"; String s = String.format(fm, d); return s; } /** * 过滤空值 * @param in * @return */ public static String filterEmpty(Integer in){ return in==null?"-":in.toString(); } public static String filterEmpty(Double in){ return in==null||in<=0?"-":in.toString();//百分比<0的也用“-”表示 } public static String filterEmpty(String in){ return in==null?"-":in.toString(); } public static String filterEmpty(Long in){ return in==null?"-":in.toString(); } /** * 数字匹配 * @param num 需匹配的对象 * @param pattern 匹配类型 * @return */ public static String numberFormat(int num,String pattern){ String s = null; try { java.text.DecimalFormat df = new java.text.DecimalFormat(pattern); s = df.format(num); } catch (Exception e) { e.printStackTrace(); } return s; } /** * 除以10000 * @param num * @return */ public static String divideTenThousand(int num,boolean bl){ String numStr = num+""; if(bl){ numStr = formatNPrecision((double)num/10000,1); } return numStr; } /** * 除以10000 * @param num * @return */ public static String divideTenThousand(long num,boolean bl){ String numStr = num+""; if(bl){ numStr = formatNPrecision((double)num/10000,1); } return numStr; } public static String convertShortPercent(Double d,int num) { String s = convertShortString(d,num); if(s!=null&&s.contains("%")){ s = s.replace("%", ""); } return s; } /** * 冒泡法升序排列 * @param sArr * @return */ public static int[] sortByUp(String sArr[]){ if(sArr==null){ return null; } int iArr[] = new int[sArr.length]; for (int i = 0; i < sArr.length; i++) { iArr[i] = Integer.parseInt(sArr[i]); } if(sArr.length<=1){ return iArr; } for (int i = 0; i < iArr.length-1; i++) { for (int j = 1; j < iArr.length-i; j++) { if(iArr[j]<iArr[j-1]){ int temp = iArr[j]; iArr[j] = iArr[j-1]; iArr[j-1] = temp; } } } return iArr; } /** * 冒泡法升序排列 * @param iArr * @return */ public static int[] sortByUp(int iArr[]){ if(iArr==null||iArr.length<=1){ return iArr; } for (int i = 0; i < iArr.length-1; i++) { for (int j = 1; j < iArr.length-i; j++) { if(iArr[j]<iArr[j-1]){ int temp = iArr[j]; iArr[j] = iArr[j-1]; iArr[j-1] = temp; } } } return iArr; } /** * 提供精确的加法运算 * @param v1 被加数 * @param v2 加数 * @return 两个参数的和 */ public static double add(double v1,double v2){ BigDecimal b1 = new BigDecimal(Double.toString(v1)); BigDecimal b2 = new BigDecimal(Double.toString(v2)); return b1.add(b2).doubleValue(); }; /** * 提供精确的减法运算 * @param v1 被减数 * @param v2 减数 * @return 两个参数的差 */ public static double sub(double v1,double v2){ BigDecimal b1 = new BigDecimal(Double.toString(v1)); BigDecimal b2 = new BigDecimal(Double.toString(v2)); return b1.subtract(b2).doubleValue(); } /** * 提供精确的乘法运算。 * @param v1 被乘数 * @param v2 乘数 * @return 两个参数的积 */ public static double mul(double v1,double v2){ BigDecimal b1 = new BigDecimal(Double.toString(v1)); BigDecimal b2 = new BigDecimal(Double.toString(v2)); return b1.multiply(b2).doubleValue(); } /** * 计算某个月份的最大日期 * @param year * @param month * @return */ public static int maxDay(String year,String month){ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM"); Calendar cal = Calendar.getInstance(); Date dd = null; try { dd = sdf.parse(year+month); } catch (ParseException e) { e.printStackTrace(); } cal.setTime(dd); int day=cal.getActualMaximum(Calendar.DAY_OF_MONTH); return day; } //字符串转整型 public static Integer stringToInt(String str){ Integer result = null; try { if(str!=null&&(!str.trim().equals(""))){ result = Integer.parseInt(str); } } catch (Exception e) { e.printStackTrace(); } return result; } }
相关推荐
java开发中常用的工具类 比如 1:hibernate的配置 工具类复写 2:字符串加密 MD5加密 3:javabean到map的自动映射封装 4:javabean java对象到xml的自动封装 5:各种日期格式的处理 6:json的自动封装处理 7:...
1.删除字符 2.去空格 3.去除所有空格和特殊字符 4.判断邮箱 5.字符串集合转字符串 6.只保留汉字 7.关键词前后是否包含英文字母 8.去除字符串中的附件 9.获取下标单个位置和所有位置
java自定义服务器检验工具类,有整个工程
[工具类] CookieCounter .java.txt [工具类] 验证码img .jsp.txt [工具类] Java中计算任意两个日期之间的工作天数 .java.txt [工具类] java抓取网页 .java.txt [工具类] MD5 .java.txt [工具类] MD5强化版 .java.txt...
Java日志工具类,支持控制台输出日志信息,也支持用文件持久化日志信息。有配置文件log.config可以配置。
环境:Windows XP ...这里本人翻写一个通用的线程池类,它可以用来作为工具类处理许多多线程问题。代码注释非常详尽,一行注释一行代码。 阅读对象:非常熟悉Java的基本概念,并且熟悉命令行编写代码的人员。
自定义日志模块(接口及代理实现),而不直接使用第三方日志框架接口,避免在日志框架升级或者切换时,代码过多耦合。 这个举例说明一下: 比如,在某一项目开始时使用的是“log4j”框架,后面经过研究发现“sf4j...
Java发 Https请求工具类 支持SSL。 自定义请求方式 GET POST... 微信自用, 发Https请求工具类,支持SSL SSL Https
自定义依赖注入工具类SpringUtil.java
一个可以打印复杂自定义对象的工具类,方便java代码查询和调试对象内容数据
自定义日志工具类Log4jHTMLLayout.java
自定义日志工具类LoggerInterceptor.java
主要为大家详细介绍了java自定义封装StringUtils常用工具类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
主要讲解了System类、Object类、Arrays类、Cloneable接口、IO系统输入输出类及装饰类、IO系统文本读写工具类、IO系统二进制读写工具类、对象序列化工具类、File类及文件搜索工具类、java异常机制及自定义异常类、...
java常用工具类汇总 一个java工具类,包含 关于 字符串 文件 数组 数学 的 常用工具类。 有 相关的 API文档。 内容包括: 1.工具类的API说明文档 2.编译好的Jar文件
主要介绍了Java自定义异常类的实例详解的相关资料,希望通过本文能帮助到大家,让大家学习理解掌握这部分内容,需要的朋友可以参考下
文件导入导出工具类,以及自定义导出字段注解;文件导入导出工具类,以及自定义导出字段注解;
java日期工具类,自定义日期输出格式,日期比较,获取几日前或几日后日期等
java自定义jar包读取excel数据