package com.cclotus.register.util

import java.util.regex.Pattern

class ValidityUtil {
    companion object {
        const val VALIDITY_REGEXP = "^(\\d+)([dhms])?$"

        /**
         * 解析有效期
         * 格式示例： 1d、3h、5m、10s分别表示1天、3小时、5分钟、10秒
         * @param validity 有效期格式串
         * @return 以秒为单位的有效期数值
         */
        fun parseValidity(validity: String?): Long {
            val p = Pattern.compile(VALIDITY_REGEXP)
            val m = p.matcher(validity)
            if (m.find()) {
                var `val` = m.group(1).toLong()
                val unit = m.group(2)
                if ("d".equals(unit, ignoreCase = true)) {
                    `val` *= (24 * 3600).toLong()
                } else if ("h".equals(unit, ignoreCase = true)) {
                    `val` *= 3600
                } else if ("m".equals(unit, ignoreCase = true)) {
                    `val` *= 60
                }
                return `val`
            }
            return -1
        }
    }
}
