From 4625fbefede1772c6727fc16e9cf3a381eeb2421 Mon Sep 17 00:00:00 2001
From: admin <1782158860@qq.com>
Date: Fri, 14 Oct 2022 09:08:47 +0800
Subject: [PATCH] utils
---
src/sc545/pay/utils/Utils.java | 1224 ++++++++++++++++++++++++++++++++
1 file changed, 1224 insertions(+)
create mode 100644 src/sc545/pay/utils/Utils.java
diff --git a/src/sc545/pay/utils/Utils.java b/src/sc545/pay/utils/Utils.java
new file mode 100644
index 0000000..fd0cd03
--- /dev/null
+++ b/src/sc545/pay/utils/Utils.java
@@ -0,0 +1,1224 @@
+package sc545.pay.utils;
+
+import java.awt.image.BufferedImage;
+import java.io.*;
+import java.math.BigDecimal;
+import java.net.URL;
+import java.net.URLConnection;
+import java.text.DecimalFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Random;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.imageio.ImageIO;
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.time.DateUtils;
+
+public class Utils {
+
+ public static void main(String[] args) {
+ getWeekNum();
+ }
+
+ /**
+ * 生成范围内的随机数
+ *
+ * @param min
+ * 最小值(包含)
+ * @param max
+ * 最大值(不包含)
+ * @return
+ */
+ public static int randomNum(int min, int max) {
+ int num = new Random().nextInt(max - min) + min;
+ return num;
+ }
+
+ /**
+ * 生成范围内的随机小数
+ *
+ * @param min
+ * 最小值(包含)
+ * @param max
+ * 最大值(不包含)
+ * @param w
+ * 小数点后保留位数
+ * @return
+ */
+ public static Double randomNumForDouble(int min, int max, int w) {
+
+ BigDecimal db = new BigDecimal(Math.random() * (max - min) + min);
+ Double num = db.setScale(w, BigDecimal.ROUND_HALF_UP).doubleValue();
+ return num;
+ }
+
+ /**
+ * 时间转字符串,格式:yyyy-MM-dd
+ *
+ * @param d null为当前时间
+ *
+ * @return
+ */
+ public static String date2String(Date d) {
+ if(d==null) d=new Date();
+ Date date = d;
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ String s = sdf.format(date);
+ return s;
+ }
+
+ /**
+ * 时间转字符串
+ *
+ *
+ * @param d null为当前时间
+ *
+ * @param fm null为"yyyy-MM-dd HH:mm:ss"
+ *
+ * @return
+ */
+ public static String date2String(Date d, String fm) {
+ if(d==null) d=new Date();
+ Date date = d;
+ if (fm == null)
+ fm = "yyyy-MM-dd HH:mm:ss";
+ SimpleDateFormat sdf = new SimpleDateFormat(fm);
+ String s = sdf.format(date);
+ return s;
+ }
+
+ /**
+ * 字符串转时间,格式 yyyy-MM-dd
+ *
+ * @param s
+ * 时间字符串
+ * @return
+ */
+ public static Date string2Date(String s) {
+ try {
+ String string = s;
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ Date date = sdf.parse(string);
+ return date;
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ /**
+ * 字符串转时间
+ * fm为null时默认"yyyy-MM-dd HH:mm:ss"
+ *
+ * @param s
+ * 时间字符串
+ * @param fm
+ * 格式
+ * @return
+ */
+ public static Date string2Date(String s, String fm) {
+ try {
+ String string = s;
+ if (fm == null)
+ fm = "yyyy-MM-dd HH:mm:ss";
+ SimpleDateFormat sdf = new SimpleDateFormat(fm);
+ Date date = sdf.parse(string);
+ return date;
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ /**
+ * 时间加减法
+ *
+ * @param d
+ * 时间
+ * @param day
+ * 要操作的天数,正为加,负为减
+ * @return
+ */
+ public static Date dateadd(Date d, int day) {
+ if(d==null) d=new Date();
+ Calendar yourd = Calendar.getInstance();
+ yourd.setTime(d);
+ yourd.add(Calendar.DAY_OF_YEAR, day);// 日期加
+ return yourd.getTime();
+ }
+
+
+ /**
+ * 设置定时器启动时间
+ * @param format 格式 yyyy-MM-dd 07:30:00
+ * @param d 星期,1-7,其他数字默认当天
+ * @return
+ */
+ public static Date setTime(String format,int d) {
+ long daySpan=24 * 60 * 60 * 1000;
+ SimpleDateFormat sdf = new SimpleDateFormat(format);
+ Date startTime = new Date();
+ try {
+ startTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(sdf.format(new Date()));
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+
+ int dd = Calendar.getInstance().get(Calendar.DAY_OF_WEEK);//今天是星期几
+ --dd;
+ if(dd==0) dd=7;
+ if(d>7) d=dd;
+ if(d<0){
+ if (System.currentTimeMillis() > startTime.getTime()){
+ startTime = new Date(startTime.getTime() + (daySpan));
+ }
+ }else if(d==dd){
+ if (System.currentTimeMillis() > startTime.getTime()){
+ startTime = new Date(startTime.getTime() + (daySpan*7));
+ }
+ }else{
+ if(d>dd){
+ startTime = new Date(startTime.getTime() + (daySpan*(d-dd-1)));
+ }else{
+ startTime = new Date(startTime.getTime() + (daySpan*(7-dd+d-1)));
+ }
+ }
+
+ return startTime;
+ }
+
+
+ /**
+ * 判断字符串是否为URL
+ *
+ * @param urls
+ * 需要判断的String类型url
+ * @return true:是URL;false:不是URL
+ */
+ public static boolean isHttpUrl(String urls) {
+ boolean isurl = false;
+ String regex = "(((https|http)?://)?([a-z0-9]+[.])|(www.))"
+ + "\\w+[.|\\/]([a-z0-9]{0,})?[[.]([a-z0-9]{0,})]+((/[\\S&&[^,;\u4E00-\u9FA5]]+)+)?([.][a-z0-9]{0,}+|/?)";// 设置正则表达式
+
+ Pattern pat = Pattern.compile(regex.trim());// 对比
+ Matcher mat = pat.matcher(urls.trim());
+ isurl = mat.matches();// 判断是否匹配
+ if (isurl) {
+ isurl = true;
+ }
+ return isurl;
+ }
+
+ /**
+ * 缩短网址
+ *
+ * @param longUrl
+ * @return shortUrl
+ */
+ public static String shortUrl(String longUrl) {
+ // 以自己服务器做映射的修改
+ String s2 = "http://api.t.sina.com.cn/short_url/shorten.json?source=3271760578&url_long="
+ + longUrl;
+ s2 = "http://sa.sogou.com/gettiny?url=" + longUrl;
+ return s2;
+ }
+
+ /**
+ * 判断某个时间是否过期。传进来一个旧时间,和有效天数,判断今天这个旧时间是否过期
+ *
+ * @param d
+ * 旧时间 "2019-8-5"
+ * @param day
+ * 有效天数
+ * @return true:没有过期;false:过期了
+ */
+ public static boolean dateout(String d, int day) {
+ if (d == null || "".equals(d) || "null".equals(d))
+ return false;
+ Date date = Utils.dateadd(Utils.string2Date(d), day);
+ Date newdate = new Date();
+ int i = date.compareTo(newdate);
+ if (i >= 0) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * URL解析与转义
+ *
+ * @param url
+ * url
+ * @param flg
+ * 1:转义,-1:解析
+ * @return
+ */
+ public static String doURL(String url, int flg) {
+ if (url == null || "".equals(url) || "null".equals(url))
+ return "";
+ String str = "";
+ if (flg == 1) {
+ try {
+ str = java.net.URLEncoder.encode(url, "UTF-8");// 转义
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ } else if (flg == -1) {
+ try {
+ str = java.net.URLDecoder.decode(url, "UTF-8"); // 解析
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ }
+ return str;
+ }
+
+ /**
+ * 获取cookie的value
+ *
+ * @param cookies
+ * 数组
+ * @param name
+ * @return value
+ */
+ public static String getcookie(Cookie[] cookies, String name) {
+ String valueString = "";
+ if (cookies != null) {
+ for (int i = 0; i < cookies.length; i++) {
+ if (name.equals(cookies[i].getName())) {
+ valueString = cookies[i].getValue();
+ break;
+ }
+ }
+ }
+ return valueString;
+ }
+
+ /**
+ * * selvet PrintWriter 输出一个html提示页,并且5秒后跳转到url
+ *
+ * @param out
+ * @param context
+ * 弹框内容
+ * @param url
+ */
+ public static void outHtml(PrintWriter out, String context, String url) {
+ // ///////////////////////输出HTML///////////////////////////////
+ out.println("");
+ out.println("");
+ out.println("
");
+ out.println(" ");
+ out.println(" ");
+ out.println(" ");
+ out.println(" 提示信息");
+ out.println(" ");
+ out.println("");
+ out.println("");
+ out.println(" ");
+ out.println("
");
+ out.println("
");
+ out.println(" ");
+ out.println("
");
+ out.println("
");
+ out.println("
" + context + "
");
+ out.println("
5秒后自动跳转
");
+ out.println("
立即前往");
+ out.println("
");
+ out.println(" ");
+ out.println("");
+ out.println("");
+ out.flush();
+ out.close();
+ // //////////////////////////////////////////////////
+ }
+
+ /**
+ * * springmvc return 输出一个html提示页,并且5秒后跳转到url
+ *
+ * @param context
+ * 弹框内容
+ * @param url
+ */
+ public static String putHtml(String context, String url) {
+ // ///////////////////////输出HTML///////////////////////////////
+ String s = "";
+ s += "";
+ s += "";
+ s += "";
+ s += " ";
+ s += " ";
+ s += " ";
+ s += " 提示信息";
+ s += " ";
+ s += "";
+ s += "";
+ s += " ";
+ s += "
";
+ s += "
";
+ s += " ";
+ s += "
";
+ s += "
";
+ s += "
" + context + "
";
+ s += "
5秒后自动跳转
";
+ s += "
立即前往";
+ s += "
";
+ s += " ";
+ s += "";
+ return s += "";
+ // //////////////////////////////////////////////////
+ }
+
+ /**
+ * 返回刷新
+ * @return
+ */
+ public static String goback(){
+ String s = "";
+ return s;
+ }
+
+ /**
+ * 读取config.properties的值
+ *
+ * @return
+ */
+ public static String getValue(String name) {
+ String path = Utils.class.getResource("/").getPath();
+ String value = null;
+ Properties prop = new Properties();
+ try {
+ // 读取属性文件a.properties
+ FileInputStream in = new FileInputStream(path
+ + "/config.properties");
+ prop.load(in); // /加载属性列表
+ value = prop.getProperty(name);
+ in.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ return value;
+ }
+
+ /**
+ * 利用DBUtils查询的listmap集给request设置setAttribute(map.key,map.value)
+ *
+ * @param request
+ * @param arr
+ * db查询的结果集(只能有一条记录 arr.get(0) )
+ * @return
+ */
+ public static HttpServletRequest setAttr(HttpServletRequest request,
+ List