Calendar使用
2023-02-01 本文已影响0人
咚咚蹡蹡
object TimeUtils {
/**
* 将时间戳转换成描述性时间(昨天、今天、明天)
*
* @param timestamp 时间戳
* @return 描述性日期
*/
fun roughReleaseTime(timeStamp: Long): String {
//当前时间
val currentTime: Calendar = Calendar.getInstance()
//要转换的时间
val time: Calendar = Calendar.getInstance()
time.timeInMillis = timeStamp
//年相同
if (currentTime.get(Calendar.YEAR) == time.get(Calendar.YEAR)) {
//获取一年中的第几天并相减,取差值
return when (currentTime.get(Calendar.DAY_OF_YEAR) - time.get(Calendar.DAY_OF_YEAR)) {
1 -> "昨天"
0 -> "今天"
-1 -> "明天"
else -> TimeUtils.millis2String(timeStamp, "MM/dd")
}
}
return TimeUtils.millis2String(timeStamp, "yyyy/MM/dd")
}
/**
* 得到年份月份列表
*/
fun getYearMonth(time: Long) :MutableList<DataAnalysisYearBean>{
val endTime = System.currentTimeMillis()
val calendar: Calendar = Calendar.getInstance()
calendar.time = TimeUtils.millis2Date(time)
val createYear :Int = calendar[Calendar.YEAR]
val createMonday :Int = calendar[Calendar.MONDAY]+ ONE
calendar.time = TimeUtils.millis2Date(endTime)
val endYear = calendar[Calendar.YEAR]
val endMonday = calendar[Calendar.MONDAY]+ ONE
if(createYear == endYear){
//如果起始时间和终止时间是一年
val yearList = mutableListOf<DataAnalysisYearBean>()
val monthList = mutableListOf<String>()
for (monthItem in createMonday..endMonday) monthList.add("${monthItem}月")
val bean = DataAnalysisYearBean("${endYear}年",monthList)
yearList.add(bean)
return yearList
}else{
//如果起始时间和终止时间不是一年
val yearList = mutableListOf<DataAnalysisYearBean>()
for (yearItem in createYear..endYear){
when(yearItem){
//如果轮询到起始时间年份
createYear->{
val monthList = mutableListOf<String>()
for (monthItem in createMonday..TWELVE)
monthList.add("${monthItem}月")
yearList.add(DataAnalysisYearBean("${yearItem}年",monthList))
}
//如果轮询到终止时间年份
endYear->{
val monthList = mutableListOf<String>()
for (monthItem in ONE..endMonday)
monthList.add("${monthItem}月")
yearList.add(DataAnalysisYearBean("${yearItem}年",monthList))
}
//如果轮询到中间年份
else->{
val monthList = mutableListOf<String>()
for (monthItem in ONE..TWELVE)
monthList.add("${monthItem}月")
yearList.add(DataAnalysisYearBean("${yearItem}年",monthList))
}
}
}
return yearList
}
}
/**
* 获取本日00:00:00的时间戳
*/
fun getToday(): Long {
val calendar = Calendar.getInstance()
calendar.set(Calendar.HOUR_OF_DAY, 0)
calendar.set(Calendar.MINUTE,0)
calendar.set(Calendar.SECOND,0)
calendar.set(Calendar.MILLISECOND,0)
return calendar.timeInMillis
}
/**
* 获取本月第一天00:00:00的时间戳
*/
fun getFirstDayMonth(): Long {
val calendar = Calendar.getInstance()
calendar.set(Calendar.DAY_OF_MONTH, 1)
calendar.set(Calendar.HOUR_OF_DAY, 0)
calendar.set(Calendar.MINUTE,0)
calendar.set(Calendar.SECOND,0)
calendar.set(Calendar.MILLISECOND,0)
return calendar.timeInMillis
}
/**
* 获取上月第一天00:00:00的时间戳
*/
fun getFirstDayLastMonth(): Long {
val calendar = Calendar.getInstance()
calendar.add(Calendar.MONTH, -1)
calendar.set(Calendar.DAY_OF_MONTH, 1)
calendar.set(Calendar.HOUR_OF_DAY, 0)
calendar.set(Calendar.MINUTE,0)
calendar.set(Calendar.SECOND,0)
calendar.set(Calendar.MILLISECOND,0)
return calendar.timeInMillis
}
/**
* 获取上月最后一天23:59:59:999毫秒的时间戳
*/
fun getStartMonth(): Long {
val calendar = Calendar.getInstance()
calendar.set(Calendar.DAY_OF_MONTH, 1)
calendar.add(Calendar.DATE, -1)
calendar.set(Calendar.HOUR_OF_DAY, 23)
calendar.set(Calendar.MINUTE,59)
calendar.set(Calendar.SECOND,59)
calendar.set(Calendar.MILLISECOND,999)
return calendar.timeInMillis
}
/**
* 获取前amount个月的时间戳
*/
fun getBeforeMonths(amount:Int): Long {
val calendar = Calendar.getInstance()
calendar.add(Calendar.MONTH, -amount)
return calendar.timeInMillis
}
/**
* 获取前amount个月的时间戳
* time 设置当前的时间,以time时间为基准
*/
fun getBeforeMonths(time:Long, amount:Int): Long {
val calendar = Calendar.getInstance()
calendar.timeInMillis = time
calendar.add(Calendar.MONTH, -amount)
return calendar.timeInMillis
}
/**
* 获取后amount个月的时间戳
* time 设置当前的时间,以time时间为基准
*/
fun getNextMonths(time:Long,amount:Int): Long {
val calendar = Calendar.getInstance()
calendar.timeInMillis = time
calendar.add(Calendar.MONTH, amount)
return calendar.timeInMillis
}