package com.chickling.util; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Calendar; import java.util.Date; import java.util.HashMap; /** * Created by gl08 on 2015/12/4. */ public class StringUtil { private static final HashMap<String,Integer> TimeIndex=new HashMap<>(); /** * Encode SHA-256 to Generate Token * @param text * @return SHA-256 Token * @throws NoSuchAlgorithmException * @throws UnsupportedEncodingException */ public static String sha256(String text) throws NoSuchAlgorithmException, UnsupportedEncodingException { //Encode SHA-256 MessageDigest md = MessageDigest.getInstance("SHA-256"); md.update(text.getBytes("UTF-8")); byte[] digest = md.digest(); return String.format("%064x", new java.math.BigInteger(1, digest)); } public static String cronGenerator(String type, String[] args,Date startDate) { String[] crone=new String[6]; int[] DateFormat=new int[3]; HashMap<String,Integer> TimeIndex=new HashMap<>(); TimeIndex.put("Minute",1); TimeIndex.put("Hour",2); TimeIndex.put("Day",3); HashMap<Integer,String> WeekDay=new HashMap<>(); WeekDay.put(0,"SUN"); WeekDay.put(1,"MON"); WeekDay.put(2,"TUE"); WeekDay.put(3,"WED"); WeekDay.put(4,"THU"); WeekDay.put(5,"FRI"); WeekDay.put(6,"SAT"); Calendar calendar = Calendar.getInstance(); calendar.setTime(startDate); DateFormat[2] = calendar.get(Calendar.HOUR_OF_DAY); DateFormat[1] = calendar.get(Calendar.MINUTE); DateFormat[0] = calendar.get(Calendar.SECOND); if(type.equals("interval")){ int unit=TimeIndex.get(args[1]); crone[unit]=DateFormat[unit]+"/"+args[0]; crone[crone.length-1]="?"; for(int i=0;i<crone.length-1;i++){ if(i<unit){ crone[i]=Integer.toString(DateFormat[i]); } else if(i>unit){ crone[i]="*"; } } } else{ char[] week=args[1].toCharArray(); String w=""; int diff=7-week.length; for(int i=week.length-1;i>=0;i--){ if(week[i]=='1'){ w=WeekDay.get(i+diff)+","+w; } } w=w.substring(0,w.lastIndexOf(",")); int hour=Integer.parseInt(args[0])/60; int minute=Integer.parseInt(args[0])%60; crone[0]="0"; crone[1]=Integer.toString(minute); crone[2]=Integer.toString(hour); crone[3]="?"; crone[4]="*"; crone[5]=w; } String rtn=""; for(int i=0;i<crone.length;i++){ rtn=rtn+crone[i]+" "; } return rtn.trim(); } }