Merge remote-tracking branch 'origin/master'
This commit is contained in:
@ -32,4 +32,86 @@ object DateUtils {
|
|||||||
}
|
}
|
||||||
return date.time
|
return date.time
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将计时毫秒值[millisecond]转换为时分秒
|
||||||
|
*/
|
||||||
|
fun getGapTime(millisecond: Long): String {
|
||||||
|
val hours = millisecond / (1000 * 60 * 60)
|
||||||
|
val minutes = (millisecond - hours * (1000 * 60 * 60)) / (1000 * 60)
|
||||||
|
val second = (millisecond - hours * (1000 * 60 * 60) - minutes * (1000 * 60)) / 1000
|
||||||
|
var diffTime: String
|
||||||
|
diffTime = if (minutes < 10) {
|
||||||
|
"$hours:0$minutes"
|
||||||
|
} else {
|
||||||
|
"$hours:$minutes"
|
||||||
|
}
|
||||||
|
diffTime = if (second < 10) {
|
||||||
|
"$diffTime:0$second"
|
||||||
|
} else {
|
||||||
|
"$diffTime:$second"
|
||||||
|
}
|
||||||
|
return diffTime
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取以当前日期为基准的某一时间段的日期
|
||||||
|
* @param isFuture Boolean 真为未来时间 假为以前的时间
|
||||||
|
* @param interval Int 间隔时间 以当前时间为基准 距今天前n天或后n天开始 就是n 0是当前日期
|
||||||
|
* @param size String 时间区间长度 比如获取五天的时间 就是5 当前日期也算一天
|
||||||
|
* @return List<String> 日期集合 顺序为日期的新旧程度
|
||||||
|
* @throws RuntimeException 如果[interval]小于0或者[size]小于1会抛出[RuntimeException]
|
||||||
|
*
|
||||||
|
* 示例:获取后天开始 为期七天的时间就是 getExcerptDate(true, 2, 7)
|
||||||
|
* 获取昨天开始再往前7天的时间 getExcerptDate(false, 1, 7)
|
||||||
|
*/
|
||||||
|
fun getExcerptDate(
|
||||||
|
isFuture: Boolean,
|
||||||
|
interval: Int,
|
||||||
|
size: Int,
|
||||||
|
dateFormat: String
|
||||||
|
): List<String> {
|
||||||
|
if (interval < 0) throw RuntimeException("\"interval\" it can't be less than 0")
|
||||||
|
if (size < 1) throw RuntimeException("\"size\" it can't be less than 1")
|
||||||
|
val simpleDateFormat = SimpleDateFormat(dateFormat, Locale.CHINESE)
|
||||||
|
val calendar = Calendar.getInstance()
|
||||||
|
val currentDayOfYear = calendar.get(Calendar.DAY_OF_YEAR)
|
||||||
|
val currentYear = calendar.get(Calendar.YEAR)
|
||||||
|
val dateList = mutableListOf<String>()
|
||||||
|
if (isFuture) {
|
||||||
|
(interval until interval + size).forEach {
|
||||||
|
val timestamp = getSomedayDate(it, calendar, currentDayOfYear, currentYear)
|
||||||
|
dateList.add(simpleDateFormat.format(timestamp))
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
(-interval downTo -interval - size + 1).forEach {
|
||||||
|
val timestamp = getSomedayDate(it, calendar, currentDayOfYear, currentYear)
|
||||||
|
dateList.add(simpleDateFormat.format(timestamp))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return dateList
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取距离今天的某一天的时间戳
|
||||||
|
* @param numberOfDaysBetween Int 间隔今天的天数 正数为未来时间 负数为以前的时间
|
||||||
|
* @param calendar Calendar Calendar对象 使用依赖注入方式 提高对象的复用性
|
||||||
|
* @param currentDayOfYear Int 当前时间在当年的天 使用Calendar获取
|
||||||
|
* @param currentYear Int 当前年 使用Calendar获取
|
||||||
|
* @return Long 时间戳
|
||||||
|
*/
|
||||||
|
fun getSomedayDate(
|
||||||
|
numberOfDaysBetween: Int,
|
||||||
|
calendar: Calendar,
|
||||||
|
currentDayOfYear: Int,
|
||||||
|
currentYear: Int
|
||||||
|
): Long {
|
||||||
|
calendar.set(Calendar.DAY_OF_YEAR, currentDayOfYear)
|
||||||
|
calendar.set(Calendar.YEAR, currentYear)
|
||||||
|
calendar.set(
|
||||||
|
Calendar.DAY_OF_YEAR,
|
||||||
|
calendar.get(Calendar.DAY_OF_YEAR) + numberOfDaysBetween
|
||||||
|
)
|
||||||
|
return calendar.time.time
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user