import java.time.LocalDate
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
import java.time.temporal.ChronoUnit
def calculateTimeBasedValue(String xc_maxtime, String xc_mintime) {
// 修改格式定义,去掉多余空格
def formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
def maxDateTime = LocalDateTime.parse(xc_maxtime, formatter)
def minDateTime = LocalDateTime.parse(xc_mintime, formatter)
println("maxDate: " + maxDateTime)
println("minDate: " + minDateTime)
def maxDate = maxDateTime.toLocalDate()
def minDate = minDateTime.toLocalDate()
def daysDiff = ChronoUnit.DAYS.between(minDate, maxDate) + 1
println("daysDiff: " + daysDiff)
def maxHour = maxDateTime.getHour()
def maxMinute = maxDateTime.getMinute()
def maxSecond = maxDateTime.getSecond()
def minHour = minDateTime.getHour()
def minMinute = minDateTime.getMinute()
def minSecond = minDateTime.getSecond()
def maxTimeAddValue
if (maxHour > 12 || (maxHour == 12 && (maxMinute > 0 || maxSecond > 0))) {
maxTimeAddValue = 1
} else {
maxTimeAddValue = 0.5
}
println("maxTimeAddValue: " + maxTimeAddValue)
def minTimeAddValue
if (minHour > 12 || (minHour == 12 && (minMinute > 0 || minSecond > 0))) {
minTimeAddValue = 0.5
} else {
minTimeAddValue = 1
}
println("minTimeAddValue: " + minTimeAddValue)
if (daysDiff <= 2) {
def result = daysDiff
println("Time daysDiff <= 2 days, result: " + result)
return result
} else {
def result = daysDiff + maxTimeAddValue + minTimeAddValue - 2
println("Time daysDiff > 2 days, result: " + result)
return result
}
}
def xc_maxtime = "2024-12-12 12:50:00"
def xc_mintime = "2024-12-09 14:45:00"
def result = calculateTimeBasedValue(xc_maxtime, xc_mintime)