package com.convenient.android.common.utils.date

import java.text.SimpleDateFormat
import java.util.*

/**
 * @classname:
 * @author: LiuXiaoLong
 * @date: 2022/8/2
 * description: 时间相关的工具类
 */
object DateUtils {
    //默认的时间格式
    enum class DateFormat(val dateFormat: String) {
        DEFAULT_PATTERN("yyyy-MM-dd HH:mm:ss"),
    }

    //默认单独时间格式
    enum class SingleDateFormat {
        YEAR,
        MONTH,
        DAY,
        HOUR,
        MINUTE,
        SECOND,
        WEEK
    }

    /**
     * 获取格式化的时间
     * @param time 时间毫秒数
     * @param pattern 格式
     * @param locale 区域
     */
    fun getFormatDate(time: Long, pattern: String = DateFormat.DEFAULT_PATTERN.dateFormat, locale: Locale = Locale.getDefault()) = SimpleDateFormat(pattern, locale).format(Date(time))

    fun isBefore(src: Date, destDate: Date): Boolean = src.before(destDate)

    fun isAfter(src: Date, destDate: Date): Boolean = src.after(destDate)

    /**
     * 传入的时间是否介于一段时间内
     * @param time 要判断的时间
     * @param startDate 介于的开始时间
     * @param endDate 介于的结束时间
     */
    fun timeBetweenDate(time: Date, startDate: Date, endDate: Date): Boolean = isBefore(time, endDate) && isAfter(time, startDate)
}