package gaf3.core.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ValidityUtil {
	public final static String VALIDITY_REGEXP = "^(\\d+)([dhms])?$";

	/**
	 * 解析有效期
	 * 格式示例： 1d、3h、5m、10s分别表示1天、3小时、5分钟、10秒
	 * @param validity 有效期格式串
	 * @return 以秒为单位的有效期数值
	 */
	public static long parseValidity(String validity){
		Pattern p = Pattern.compile(VALIDITY_REGEXP);
		Matcher m = p.matcher(validity);
		if(m.find()){
			long val = Long.parseLong(m.group(1));
			String unit = m.group(2);
			if("d".equalsIgnoreCase(unit)){
				val *= 24*3600;
			}else if("h".equalsIgnoreCase(unit)){
				val *= 3600;
			}else if("m".equalsIgnoreCase(unit)){
				val *= 60;
			}
			return val;
		}
		return -1;
	}
}
