import java.text.SimpleDateFormat
def calculateTimeBasedValue(String xc_maxtime, String xc_mintime) {
def dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
def maxDate = dateFormat.parse(xc_maxtime)
def minDate = dateFormat.parse(xc_mintime)
println("maxDate: " + maxDate)
println("minDate: " + minDate)
def diffInMillis = maxDate.time - minDate.time
println("diffInMillis: " + diffInMillis)
def diffInHours = diffInMillis / (1000 * 60 * 60)
println("diffInHours: " + diffInHours)
def maxHour = maxDate.getHours()
def maxMinute = maxDate.getMinutes()
def maxSecond = maxDate.getSeconds()
def minHour = minDate.getHours()
def minMinute = minDate.getMinutes()
def minSecond = minDate.getSeconds()
println("maxTime: ${maxHour}:${maxMinute}:${maxSecond}")
println("minTime: ${minHour}:${minMinute}:${minSecond}")
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 (diffInHours <= 12) {
def result = maxTimeAddValue + minTimeAddValue - 1
println("Time difference <= 12 hours, result: " + result)
return result
} else {
def daysDiff = Math.round(diffInHours / 24)
println("daysDiff: " + daysDiff)
def remainingHours = Math.round(diffInHours.toDouble() % 24)
println("remainingHours: " + remainingHours)
if (remainingHours > 0) {
def result = daysDiff + maxTimeAddValue + minTimeAddValue - 1
println("Time difference > 12 hours, remaining hours > 0, result: " + result)
return result
} else {
def result = daysDiff + maxTimeAddValue + minTimeAddValue
println("Time difference > 12 hours, remaining hours = 0, result: " + result)
return result
}
}
}
def xc_maxtime="2024-12-24 17:19:33"
def xc_mintime="2024-12-19 07:50:50"
def result = calculateTimeBasedValue(xc_maxtime, xc_mintime)