0.10.1 添加时间类型接口

This commit is contained in:
2021-04-09 00:21:07 +08:00
parent 6c5b84fe5d
commit 117ed25cee
2 changed files with 179 additions and 4 deletions

View File

@@ -21,7 +21,7 @@ allprojects {
subprojects { subprojects {
ext { ext {
version '0.10.0' version '0.10.1'
spring_version = "2.3.0.RELEASE" spring_version = "2.3.0.RELEASE"
} }

View File

@@ -25,7 +25,15 @@ class DateTime : Comparable<DateTime> {
/** /**
* 列出时间的级别数组 * 列出时间的级别数组
*/ */
private val calendarLevel = intArrayOf(Calendar.MILLISECOND, Calendar.SECOND, Calendar.MINUTE, Calendar.HOUR_OF_DAY, Calendar.DAY_OF_MONTH, Calendar.MONTH, Calendar.YEAR) private val calendarLevel = intArrayOf(
Calendar.MILLISECOND,
Calendar.SECOND,
Calendar.MINUTE,
Calendar.HOUR_OF_DAY,
Calendar.DAY_OF_MONTH,
Calendar.MONTH,
Calendar.YEAR
)
val date: Date val date: Date
get() = calendar.time get() = calendar.time
@@ -43,35 +51,147 @@ class DateTime : Comparable<DateTime> {
return instance.time return instance.time
} }
/**
* 当前时间年
*/
var year: Int var year: Int
get() = calendar.get(Calendar.YEAR) get() = calendar.get(Calendar.YEAR)
set(value) = calendar.set(Calendar.YEAR, value) set(value) = calendar.set(Calendar.YEAR, value)
/**
* 当前时间月
*/
var month: Int var month: Int
get() = calendar.get(Calendar.MONTH) get() = calendar.get(Calendar.MONTH)
set(value) = calendar.set(Calendar.MONTH, value) set(value) = calendar.set(Calendar.MONTH, value)
/**
* 当前时间天
*/
var day: Int var day: Int
get() = calendar.get(Calendar.DAY_OF_MONTH) get() = calendar.get(Calendar.DAY_OF_MONTH)
set(value) = calendar.set(Calendar.DAY_OF_MONTH, value) set(value) = calendar.set(Calendar.DAY_OF_MONTH, value)
/**
* 获取时间
*/
val time: Time val time: Time
get() = Time(calendar.time) get() = Time(calendar.time)
val firstDay: DateTime /**
* 获取当月天数
*/
val days: Int
get() {
return this.calendar.getActualMaximum(Calendar.DAY_OF_MONTH)
}
/**
* 当前月第一天
*/
val firstDayOfMonth: DateTime
get() { get() {
val instance = calendar.clone() as Calendar val instance = calendar.clone() as Calendar
instance.set(Calendar.DAY_OF_MONTH, 1) instance.set(Calendar.DAY_OF_MONTH, 1)
return DateTime(instance) return DateTime(instance)
} }
val lastDay: DateTime /**
* 当前月最后一天
*/
val lastDayOfMonth: DateTime
get() { get() {
val instance = calendar.clone() as Calendar val instance = calendar.clone() as Calendar
instance.set(Calendar.DAY_OF_MONTH, instance.getActualMaximum(Calendar.DAY_OF_MONTH)) instance.set(Calendar.DAY_OF_MONTH, instance.getActualMaximum(Calendar.DAY_OF_MONTH))
return DateTime(instance) return DateTime(instance)
} }
/**
* 当前周第一天
*/
val firstDayOfWeek: DateTime
get() {
val instance = calendar.clone() as Calendar
instance.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY)
instance.set(Calendar.HOUR_OF_DAY, 0)
instance.set(Calendar.MINUTE, 0)
instance.set(Calendar.SECOND, 0)
instance.set(Calendar.MILLISECOND, 0)
return DateTime(instance)
}
/**
* 当前周最后一天
*/
val lastDayOfWeek: DateTime
get() {
val instance = this.firstDayOfWeek.calendar.clone() as Calendar
instance.add(Calendar.DAY_OF_WEEK, 6)//当前周第一天加6天
instance.set(Calendar.HOUR_OF_DAY, 23)
instance.set(Calendar.MINUTE, 59)
instance.set(Calendar.SECOND, 59)
instance.set(Calendar.MILLISECOND, 0)
return DateTime(instance)
}
/**
* 当前天最早时间
*/
val earliestTime: DateTime
get() {
val instance = this.calendar.clone() as Calendar
instance.set(Calendar.HOUR_OF_DAY, 0)
instance.set(Calendar.MINUTE, 0)
instance.set(Calendar.SECOND, 0)
instance.set(Calendar.MILLISECOND, 0)
return DateTime(instance)
}
/**
* 当前天最晚时间
*/
val latestTime: DateTime
get() {
val instance = this.calendar.clone() as Calendar
instance.set(Calendar.HOUR_OF_DAY, 23)
instance.set(Calendar.MINUTE, 59)
instance.set(Calendar.SECOND, 59)
instance.set(Calendar.MILLISECOND, 0)
return DateTime(instance)
}
/**
* 当前时间最上一月
*/
val previousMonth: DateTime
get() {
return this.addMonth(-1)
}
/**
* 当前时间下一月
*/
val nextMonth: DateTime
get() {
return this.addMonth(1)
}
/**
* 当前时间最上一天
*/
val previousDay: DateTime
get() {
return this.addDay(-1)
}
/**
* 当前时间下一天
*/
val nextDay: DateTime
get() {
return this.addDay(1)
}
/** /**
* 从ate格式转化 * 从ate格式转化
*/ */
@@ -188,6 +308,61 @@ class DateTime : Comparable<DateTime> {
} }
} }
/**
* 判断当前时间是否在某时间后
*
* @param other 另一时间
*/
fun after(other: DateTime): Boolean {
return this.date.after(other.date)
}
/**
* 判断当前时间是否在某时间前
*
* @param other 另一时间
*/
fun before(other: DateTime): Boolean {
return this.date.before(other.date)
}
/**
* 加减月份。
*
* @param month 月份。可以为负数,即为减。
*/
fun addMonth(month: Int): DateTime {
val instance = calendar.clone() as Calendar
instance.add(Calendar.MONTH, month)
return DateTime(instance)
}
/**
* 加减日期。
*
* @param day 天数。可以为负数,即为减。
*/
fun addDay(day: Int): DateTime {
val instance = calendar.clone() as Calendar
instance.add(Calendar.DAY_OF_MONTH, day)
return DateTime(instance)
}
/**
* 当前天是否工作日
*/
fun isWorkday(): Boolean {
return !this.isWeekend()
}
/**
* 当前天是否周末
*/
fun isWeekend(): Boolean {
val dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK)
return (dayOfWeek == Calendar.SATURDAY || dayOfWeek == Calendar.SUNDAY)
}
operator fun minus(other: DateTime): TimeSpan { operator fun minus(other: DateTime): TimeSpan {
return TimeSpan(this.milliseconds - other.milliseconds) return TimeSpan(this.milliseconds - other.milliseconds)
} }