编辑代码

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)