`

java自定义工具类方法

 
阅读更多
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常见工具类

    java开发中常用的工具类 比如 1:hibernate的配置 工具类复写 2:字符串加密 MD5加密 3:javabean到map的自动映射封装 4:javabean java对象到xml的自动封装 5:各种日期格式的处理 6:json的自动封装处理 7:...

    java自定义工具类,对字符串进行特殊处理

    1.删除字符 2.去空格 3.去除所有空格和特殊字符 4.判断邮箱 5.字符串集合转字符串 6.只保留汉字 7.关键词前后是否包含英文字母 8.去除字符串中的附件 9.获取下标单个位置和所有位置

    java自定义服务器检验工具类

    java自定义服务器检验工具类,有整个工程

    30个java工具类

    [工具类] CookieCounter .java.txt [工具类] 验证码img .jsp.txt [工具类] Java中计算任意两个日期之间的工作天数 .java.txt [工具类] java抓取网页 .java.txt [工具类] MD5 .java.txt [工具类] MD5强化版 .java.txt...

    Java自定义日志工具类

    Java日志工具类,支持控制台输出日志信息,也支持用文件持久化日志信息。有配置文件log.config可以配置。

    一个通用的Java线程池类

    环境:Windows XP ...这里本人翻写一个通用的线程池类,它可以用来作为工具类处理许多多线程问题。代码注释非常详尽,一行注释一行代码。 阅读对象:非常熟悉Java的基本概念,并且熟悉命令行编写代码的人员。

    Java自定义日志模块实现

    自定义日志模块(接口及代理实现),而不直接使用第三方日志框架接口,避免在日志框架升级或者切换时,代码过多耦合。 这个举例说明一下: 比如,在某一项目开始时使用的是“log4j”框架,后面经过研究发现“sf4j...

    Java发 Https请求工具类 支持SSL

    Java发 Https请求工具类 支持SSL。 自定义请求方式 GET POST... 微信自用, 发Https请求工具类,支持SSL SSL Https

    自定义依赖注入工具类SpringUtil.java

    自定义依赖注入工具类SpringUtil.java

    打印自定义复杂对象工具类

    一个可以打印复杂自定义对象的工具类,方便java代码查询和调试对象内容数据

    自定义日志工具类Log4jHTMLLayout.java

    自定义日志工具类Log4jHTMLLayout.java

    自定义日志工具类LoggerInterceptor.java

    自定义日志工具类LoggerInterceptor.java

    java自定义封装StringUtils常用工具类

    主要为大家详细介绍了java自定义封装StringUtils常用工具类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    java常用类解析及示例及一些工具类源代码

    主要讲解了System类、Object类、Arrays类、Cloneable接口、IO系统输入输出类及装饰类、IO系统文本读写工具类、IO系统二进制读写工具类、对象序列化工具类、File类及文件搜索工具类、java异常机制及自定义异常类、...

    java常用工具类汇总

    java常用工具类汇总 一个java工具类,包含 关于 字符串 文件 数组 数学 的 常用工具类。 有 相关的 API文档。 内容包括: 1.工具类的API说明文档 2.编译好的Jar文件

    Java自定义异常类的实例详解

    主要介绍了Java自定义异常类的实例详解的相关资料,希望通过本文能帮助到大家,让大家学习理解掌握这部分内容,需要的朋友可以参考下

    文件导入导出工具类和自定义注解

    文件导入导出工具类,以及自定义导出字段注解;文件导入导出工具类,以及自定义导出字段注解;

    java日期工具类

    java日期工具类,自定义日期输出格式,日期比较,获取几日前或几日后日期等

    java自定义jar包读取excel数据

    java自定义jar包读取excel数据

Global site tag (gtag.js) - Google Analytics