用kotlin写的 java代码用intellij可互转,此处不再贴出
fun getWeekOfDate(dt: Date): Int {
val weekDays = arrayOf(7, 1, 2, 3, 4, 5, 6)
val cal = Calendar.getInstance()
cal.time = dt
var w = cal[Calendar.DAY_OF_WEEK] - 1
if (w < 0) {
w = 0
}
return weekDays[w]
}
fun isLastDayOfMonth(dt: Date): Boolean {
val calendar = Calendar.getInstance()
calendar.time = dt
calendar.set(Calendar.DATE, (calendar.get(Calendar.DATE) + 1))
return calendar.get(Calendar.DAY_OF_MONTH) == 1
}
fun getCurrentQuarterRangeDay(dt: Date): Pair<String, String> {
val startDate = getCurrentQuarterStartDate(dt)
val endDate = getCurrentQuarterEndDate(dt)
return Pair(getDateStr(startDate), getDateStr(endDate))
}
private fun getCurrentQuarterStartDate(dt: Date): Date {
val c = Calendar.getInstance()
c.time = dt
val currentMonth = c[Calendar.MONTH] + 1
var date = dt
try {
if (currentMonth in 1..3) {
c[Calendar.MONTH] = 0
} else if (currentMonth in 4..6) {
c[Calendar.MONTH] = 3
} else if (currentMonth in 7..9) {
c[Calendar.MONTH] = 6
} else if (currentMonth in 10..12) {
c[Calendar.MONTH] = 9
}
c[Calendar.DATE] = 1
date = parseDate(getDateStr(c.time) + " 00:00:00")
} catch (e: Exception) {
logger.error(e.message, e)
}
return date
}
private fun getCurrentQuarterEndDate(dt: Date): Date {
val c = Calendar.getInstance()
c.time = dt
val currentMonth = c[Calendar.MONTH] + 1
var date = dt
try {
if (currentMonth in 1..3) {
c[Calendar.MONTH] = 3
c[Calendar.DATE] = 31
} else if (currentMonth in 4..6) {
c[Calendar.MONTH] = 6
c[Calendar.DATE] = 30
} else if (currentMonth in 7..9) {
c[Calendar.MONTH] = 9
c[Calendar.DATE] = 30
} else if (currentMonth in 10..12) {
c[Calendar.MONTH] = 12
c[Calendar.DATE] = 31
}
c[Calendar.DATE] = 1
date = parseDate(getDateStr(c.time) + " 23:59:59")
} catch (e: Exception) {
logger.error(e.message, e)
}
return getDateInterval(date, -1)
}
|