package com.simpro.util;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class ConfigSerialNumber {
//使用main方法生成序列号
public static void main(String[] args) {
// 获取当前时间的毫秒值
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("当前时间格式转换:"+sdf.format(date));
System.out.println("当前时间毫秒值:"+date.getTime());
System.out.println("—————当前时间毫秒值:15832216 47620—————————————————————————");
//获取后3.5个月时间
Date dBefore = new Date();
Calendar calendar = Calendar.getInstance(); //得到日历
calendar.setTime(date);//把当前时间赋给日历
calendar.add(Calendar.MONTH, 3); //设置为后3月
dBefore = calendar.getTime(); //得到后3月的时间
System.out.println("以后当前时间格式转换:"+sdf.format(dBefore));
System.out.println("以后时间毫秒值:"+dBefore.getTime());
System.out.println("——————以后时间毫秒值:159117 0 4 47620————————————————————————");
//随机获取三位数
String myStr = Integer.toString((int)(Math.random()*900 + 100));
System.out.println("随机获取三位数:"+myStr);
//***4-15**-*911*-7***(*表示随机产生的数据值)
String csn = "";
csn = Integer.toString((int)(Math.random()*900 + 100))+"4-"
+ "15"+Integer.toString((int)(Math.random()*900 + 100)).substring(0,2)+"-"
+Integer.toString((int)(Math.random()*900 + 100)).subSequence (0,1)+"911-"
+"7"+Integer.toString((int)(Math.random()*900 + 100));
//得出标椎序列码
System.out.println("得出标椎序列码:"+csn);
//得出标椎序列码:1264-1552-6911-7181
//得出标椎序列码:1214-1596-1911-7646
//得出标椎序列码:3524-1557-8911-7390
//得出标椎序列码:9064-1569-5911-7567
System.out.println("序列号验证:"+checkCSN(csn));
}
//这里就是简单地解密
public static boolean checkCSN(String csn) {
boolean res = true;
String[] s1=csn.split("-");
for(int i=0;i<s1.length;i++){
//循环输出结果
System.out.println(s1[i]);
}
//获取第二组前两位
String arr1 = "0"+s1[0].substring(s1[0].length()-1);
System.out.println("1:"+arr1);
String arr2 = s1[1].substring(0,2);
System.out.println("2:"+arr2);
String arr3 = s1[2].substring(s1[2].length()-3);
System.out.println("3:"+arr3);
String arr4 = s1[3].subSequence(0,1).toString();
System.out.println("4:"+arr4);
String ccsn = arr2+arr3+arr4+arr1+"47620";
System.out.println("转译出的日期:"+ccsn);
if(new Date().getTime()>Long.valueOf(ccsn)) {
//期限已到
res = false;
}else {
//正常使用
res = true;
}
return res;
}
}