package com.jingshan.util;

import java.io.IOException;
import java.io.InputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
import org.apache.commons.codec.digest.DigestUtils;

import com.jingshan.model.Page;
public final class CommonsUtil {
public static void testTime(){
System.out.println(timeToString("1503991612952"));
System.out.println(stringToTime("2017-08-29 15:26:52"));
}
// 时间戳转字符串 1503991612952 ==> 2017-08-29 15:26:52 时间戳 是long 类型
public static String timeToString(String s){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date;
try {
date = sdf.parse(sdf.format(new Date(new Long(s))));
//Date date = sdf.parse(sdf.format(new Long(s)));// 等价于
return sdf.format(date);
} catch (NumberFormatException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (ParseException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
return null;
}
// 字符串转时间戳 2017-08-29 15:26:52 ==> 1503991612952
public static String stringToTime(String s){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date;
try {
date = sdf.parse(s);
return String.valueOf(date.getTime());
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}

/**
* 根据文件名获得文件后缀名
* @param filename 文件名
* @return 后缀名
*/
public static String getSuffix(String filename) {
int pos = filename.lastIndexOf(".");// 判读是否有 .
return pos > 0 && pos < filename.length() - 1 ? filename.substring(pos) : null;
}

/**
* 基于时间+随机数的方式获得唯一文件名
* @param suffix 后缀名
* @return 带后缀名的文件名
*/
public static String getUniqueFilename1(String suffix) {
long millis = System.currentTimeMillis();//产生一个当前的毫秒,这个毫秒其实就是自1970年1月1日0时起的毫秒数
String randomString = String.format("%d%05d", millis, (int) (Math.random() * 100000));// 拼接毫秒数 + 5位补齐0的随机数
return randomString + (suffix != null ? suffix : "");// 生成指定唯一的字符串
}

/**
* 基于UUID的方式获得唯一文件名
* @param suffix 后缀名
* @return 带后缀名的文件名
*/
public static String getUniqueFilename2(String suffix) {
String uuidString = UUID.randomUUID().toString();// 生成 32位 通用唯一识别码
return uuidString + (suffix != null ? suffix : "");
}

/**
* 基于MD5摘要的方式获得唯一文件名
* @param in 输入流
* @param suffix 后缀名
* @return 带后缀名的文件名
*/
public static String getUniqueFilename3(InputStream in, String suffix) {
try {
String md5String = DigestUtils.md5Hex(in);// md5 摘要方式的 唯一数据流
return md5String + (suffix != null ? suffix : "");
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
// 分页
// 或分页
public static Page getPage(String url,int page_size,int page_total,int page_now) {
Page page = new Page();
page.setFirstPage("<a href=\""+url+"?page=1\">首页</a>");
page.setNextPage("<a href=\""+url+"?page="+((page_now < page_total)?(page_now + 1):page_total)+"\">></a>");
page.setNowPage(""+page_now);

if(page_now <= 2) {
page.setPageNum1("");
}else {
int pageNum1 = (page_now -2 <= 1)?1:(page_now -2);
page.setPageNum1("<a href=\""+url+"?page="+pageNum1+"\">"+pageNum1+"</a>");
}

if(page_now == 1) {
page.setPageNum2("");
}else {
int pageNum2 = (page_now -1 <= 1)?1:(page_now -1);
page.setPageNum2("<a href=\""+url+"?page="+pageNum2+"\">"+pageNum2+"</a>");
}

if(page_now >= page_total) {
page.setPageNum3("");
}else {
int pageNum3 = (page_now +1 >= page_total)?page_total:(page_now +1);
page.setPageNum3("<a href=\""+url+"?page="+pageNum3+"\">"+pageNum3+"</a>");
}

if(page_now >= page_total-1) {
page.setPageNum4("");
}else {
int pageNum4 = (page_now +2 >= page_total)?page_total:(page_now +2);
page.setPageNum4("<a href=\""+url+"?page="+pageNum4+"\">"+pageNum4+"</a>");
}


int page_pre = (page_now -1 <= 1)?1:(page_now -1);
page.setPrePage("<a href=\""+url+"?page="+page_pre+"\"><</a>");
page.setTailPage("<a href=\""+url+"?page="+page_total+"\">尾页</a>");
return page;

}
// 类结束了
}